1 #include "kmime_dateformatter.h"
2 #include "kmime_header_parsing.h"
3 #include <QDebug>
4 using namespace KMime;
5
6 #ifndef Q_OS_WIN
initLocale()7 void initLocale()
8 {
9 setenv("LC_ALL", "en_US.utf-8", 1);
10 setenv("TZ", "UTC", 1);
11 }
12
Q_CONSTRUCTOR_FUNCTION(initLocale)13 Q_CONSTRUCTOR_FUNCTION(initLocale)
14 #endif
15
16 int
17 main()
18 {
19 DateFormatter t;
20
21 time_t ntime = time(nullptr);
22 qDebug() << "Time now:";
23 qDebug() << "tFancy : \t" << t.dateString(ntime);
24 t.setFormat(DateFormatter::Localized);
25 qDebug() << "tLocalized : \t" << t.dateString(ntime);
26 t.setFormat(DateFormatter::CTime);
27 qDebug() << "tCTime : \t" << t.dateString(ntime);
28 t.setFormat(DateFormatter::Iso);
29 qDebug() << "tIso : \t" << t.dateString(ntime);
30 t.setFormat(DateFormatter::Rfc);
31 qDebug() << "trfc2822 : \t" << t.dateString(ntime);
32 QString rfcd = t.formatDate(DateFormatter::Rfc, ntime);
33 QDateTime dt;
34 QDateTime qdt;
35 QByteArray ba = rfcd.toLatin1();
36 const char *str = ba.constData();
37 if (HeaderParsing::parseDateTime(str, str + rfcd.length(), dt)) {
38 qDebug() << " ntime =" << (ntime) << " dt =" << (dt.toSecsSinceEpoch());
39 qdt.setSecsSinceEpoch(dt.toSecsSinceEpoch());
40 qDebug() << " qq =" << qdt.toString(QStringLiteral("ddd, dd MMM yyyy hh:mm:ss"));
41 qDebug() << " rfc2822 :" << t.formatDate(DateFormatter::Rfc, dt.toSecsSinceEpoch());
42 }
43 QString ddd = QStringLiteral("Mon, 05 Aug 2002 01:57:51 -0700");
44 ba = ddd.toLatin1();
45 str = ba.constData();
46 if (HeaderParsing::parseDateTime(str, str + ddd.length(), dt)) {
47 qDebug() << "dt =" << (dt.toSecsSinceEpoch());
48 qDebug() << " rfc2822 :" << t.formatDate(DateFormatter::Rfc, dt.toSecsSinceEpoch());
49 }
50
51 t.setCustomFormat(QStringLiteral("MMMM dddd yyyy Z"));
52 qDebug() << "tCustom : \t" << t.dateString(ntime);
53
54 ntime -= (24 * 3600 + 1);
55 qDebug() << "Time 24 hours and 1 second ago:";
56 t.setFormat(DateFormatter::Fancy);
57 qDebug() << "tFancy : \t" << t.dateString(ntime);
58 t.setFormat(DateFormatter::Localized);
59 qDebug() << "tLocalized : \t" << t.dateString(ntime);
60 t.setFormat(DateFormatter::CTime);
61 qDebug() << "tCTime : \t" << t.dateString(ntime);
62 t.setFormat(DateFormatter::Iso);
63 qDebug() << "tIso : \t" << t.dateString(ntime);
64 t.setFormat(DateFormatter::Rfc);
65 qDebug() << "trfc2822 : \t" << t.dateString(ntime);
66 t.setCustomFormat(QStringLiteral("MMMM dddd Z yyyy"));
67 qDebug() << "tCustom : \t" << t.dateString(ntime);
68
69 t.setFormat(DateFormatter::Fancy);
70 ntime -= (24 * 3600 * 30 + 59);
71 qDebug() << "Time 31 days and 1 minute ago:";
72 qDebug() << "tFancy : \t" << t.dateString(ntime);
73 t.setFormat(DateFormatter::Localized);
74 qDebug() << "tLocalized : \t" << t.dateString(ntime);
75 t.setFormat(DateFormatter::CTime);
76 qDebug() << "tCTime : \t" << t.dateString(ntime);
77 t.setFormat(DateFormatter::Iso);
78 qDebug() << "tIso : \t" << t.dateString(ntime);
79 t.setFormat(DateFormatter::Rfc);
80 qDebug() << "trfc2822 : \t" << t.dateString(ntime);
81 t.setCustomFormat(QStringLiteral("MMMM Z dddd yyyy"));
82 qDebug() << "tCustom : \t" << t.dateString(ntime);
83
84 qDebug() << "Static functions (dates like in the last test):";
85 qDebug() << "tFancy : \t" << DateFormatter::formatDate(DateFormatter::Fancy, ntime);
86 qDebug() << "tLocalized : \t" << DateFormatter::formatDate(DateFormatter::Localized, ntime);
87 qDebug() << "tCTime : \t" << DateFormatter::formatDate(DateFormatter::CTime, ntime);
88 qDebug() << "tIso : \t" << DateFormatter::formatDate(DateFormatter::Iso, ntime);
89 qDebug() << "trfc2822 : \t" << DateFormatter::formatDate(DateFormatter::Rfc, ntime);
90 qDebug() << "tCustom : \t" << DateFormatter::formatDate(DateFormatter::Custom, ntime,
91 QStringLiteral("Z MMMM dddd yyyy"));
92 t.setFormat(DateFormatter::Fancy);
93 qDebug() << "QDateTime taking: (dates as in first test)";
94 qDebug() << "tFancy : \t" << t.dateString((QDateTime::currentDateTime()));
95 t.setFormat(DateFormatter::Localized);
96 qDebug() << "tLocalized : \t" << t.dateString(QDateTime::currentDateTime());
97 t.setFormat(DateFormatter::CTime);
98 qDebug() << "tCTime : \t" << t.dateString(QDateTime::currentDateTime());
99 t.setFormat(DateFormatter::Iso);
100 qDebug() << "tIso : \t" << t.dateString(QDateTime::currentDateTime());
101 t.setFormat(DateFormatter::Rfc);
102 qDebug() << "tIso : \t" << t.dateString(QDateTime::currentDateTime());
103 t.setCustomFormat(QStringLiteral("MMMM d dddd yyyy Z"));
104 qDebug() << "tCustom : \t" << t.dateString(QDateTime::currentDateTime());
105 }
106