0

プログラムが実行されているロケールの書式設定された日付と時刻を取得するには、どの C 関数を呼び出す必要がありますか?

ClamAV デーモン API の使用中に問題が発生したため、この質問をしています。このVERSIONコマンドは最新のウイルス定義の日時を返しますが、コードはctimeそれをフォーマットするために への呼び出しを使用します。私が知る限りctime、現在のロケールに従って日時をフォーマットせず、返された文字列の曜日と月に英語の略語を使用しています。これは、ClamAV API を使用する私の Java プログラムが現在のロケールを尊重し、曜日と月の名前がローカルの略語を持つことを期待するため、問題を引き起こします

datetime 形式は、 ctimeによって生成されるものと同じ形式である必要があります。

Www うーん dd hh:mm:ss yyyy

Www は曜日、Mmm は月、dd は日、hh:mm:ss は時刻、yyyy は年です。

常に英語の日付を想定するように Java プログラムを書き直すこともできますが、ClamAV 側のバグのように思われるので、ClamAV にパッチを提出する方がよいでしょう。

4

1 に答える 1

4

strftime("%c", ...現在のロケールに適した日付と時刻の表現を提供する必要があります。または (まだ を使用して)の形式strftimeをエミュレートできますが、現在のロケールの月の省略形、現在のロケールの曜日の省略形などを使用できます。ctime%b%a

于 2010-05-06T04:11:53.613 に答える