我正在使用glibs函数将纪元时间转换为字符串,如下所示 但每次它给我一些随机时间。
//Convert Time in string.
GDate *date = g_date_new_julian(timestampsecs);
gchar date_string[50];
g_date_strftime(date_string, 50, (const gchar*)"%a, %I:%M %p", (const GDate*)date);
printf("Date String [%s]\n", date_string );
为什么会发生这种情况?我错过了什么吗?
谢谢,
PP。
更新
正如我所说的尝试setlocale(LC_ALL, "");
以下是输出,
它与我在使用setlocale
之前获得的相同。
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279703 computed dmy: 66 4293563716 187
Date String Tik_INDEX[1] [1272279703] --> [Tue, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279717 computed dmy: 80 4293563716 187
Date String Tik_INDEX[2] [1272279717] --> [Tue, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279720 computed dmy: 53 4293563717 187
Date String Tik_INDEX[3] [1272279720] --> [Fri, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279721 computed dmy: 54 4293563717 187
Date String Tik_INDEX[4] [1272279721] --> [Sat, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279721 computed dmy: 54 4293563717 187
Date String Tik_INDEX[5] [1272279721] --> [Sat, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279722 computed dmy: 55 4293563717 187
Date String Tik_INDEX[6] [1272279722] --> [Sun, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279723 computed dmy: 56 4293563717 187
Date String Tik_INDEX[7] [1272279723] --> [Mon, 12:00 AM]
(MyTestApp:7747): GLib-WARNING **:
OOPS julian: 1272279724 computed dmy: 57 4293563717 187
Date String Tik_INDEX[8] [1272279724] --> [Tue, 12:00 AM]
答案 0 :(得分:1)
您可能希望先致电setlocale(),“LC_ALL”should do it。 POSIX
也应该有效,不确定C
。
g_date_strftime()
受区域设置的影响。它还可以存储g_date_strftime()
的结果,或者填充静态缓冲区的任何其他内容。你想知道实际打印到缓冲区的字节数。