2010-04-26 6 views
1

Я использую glibs функцию для преобразования времени эпохи в строку следующим образом.
Но каждый раз это дает мне какое-то случайное время.Glib преобразовать время эпохи в строку

//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] 

ответ

1

Вы, вероятно, хотите назвать setlocale() первый "LC_ALL" should do it. POSIX также должен работать, не уверен около C.

g_date_strftime() зависит от настройки локали. Также полезно сохранить результат g_date_strftime() или что-нибудь еще, что заполняет статический буфер. Вам нужно знать, сколько байтов было фактически напечатано в буфере.

+0

Спасибо за ответ, Перейди-через обновленную часть вопроса. – User7723337