openPilotLog
adatetime.h
1 /*
2  *openPilotLog - A FOSS Pilot Logbook Application
3  *Copyright (C) 2020-2022 Felix Turowsky
4  *
5  *This program is free software: you can redistribute it and/or modify
6  *it under the terms of the GNU General Public License as published by
7  *the Free Software Foundation, either version 3 of the License, or
8  *(at your option) any later version.
9  *
10  *This program is distributed in the hope that it will be useful,
11  *but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  *GNU General Public License for more details.
14  *
15  *You should have received a copy of the GNU General Public License
16  *along with this program. If not, see <https://www.gnu.org/licenses/>.
17  */
18 #ifndef ADATETIME_H
19 #define ADATETIME_H
20 #include <QtCore>
21 #include "src/opl.h"
22 
23 namespace ADateTime {
24 
29 inline const QString toString (const QDateTime& date_time, OPL::DateTimeFormat format) {
30  switch (format) {
31  case OPL::DateTimeFormat::Default:
32  return date_time.toString(Qt::ISODate);
33  case OPL::DateTimeFormat::Backup:
34  return date_time.toString(QStringLiteral("yyyy_MM_dd_T_hh_mm"));
35  default:
36  return QString();
37  }
38 }
39 
40 inline QDateTime fromString(const QString& date_time_string)
41 {
42  auto date_time = QDateTime::fromString(date_time_string, QStringLiteral("yyyy-MM-ddhh:mm"));
43  date_time.setTimeZone(QTimeZone::utc());
44  return date_time;
45 }
46 
47 }
48 
49 #endif // ADATETIME_H