1

次のように、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]
4

1 に答える 1

1

おそらく最初にsetlocale()を呼び出したいと思うでしょう、「LC_ALL」はそれをするべきですPOSIXについてもよくわかりませんが、動作するはずCです。

g_date_strftime()ロケール設定の影響を受けます。g_date_strftime()、または静的バッファを満たすその他の結果を保存するのも良い方法です。実際にバッファに出力されたバイト数を知りたいと思うでしょう。

于 2010-04-26T08:17:37.970 に答える