Unity 8
timezoneFormatter.cpp
1 /*
2  * Copyright 2015 Canonical Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #include <QTimeZone>
18 
19 #include "timezoneFormatter.h"
20 
21 TimezoneFormatter::TimezoneFormatter(QObject *parent)
22  : QObject(parent)
23 {
24 }
25 
26 QString TimezoneFormatter::currentTimeInTimezone(const QVariant &tzId) const
27 {
28  QTimeZone tz(tzId.toByteArray());
29  if (tz.isValid()) {
30  const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
31  // return locale-aware string in the form "day, hh:mm", e.g. "Mon 14:30" or "Mon 1:30 pm"
32  return QStringLiteral("%1 %2").arg(now.toString(QStringLiteral("ddd"))).arg(now.time().toString(Qt::DefaultLocaleShortDate));
33  }
34  return QString();
35 }