0

我应该调用什么 C 函数来获取程序正在执行的语言环境的格式化日期和时间?

我问这个问题是因为我在使用 ClamAV 守护程序 API 时遇到了问题。该VERSION命令返回最新病毒定义的日期和时间,但代码使用调用ctime来格式化它。据我所知ctime,不会根据当前语言环境格式化日期时间,并在返回的字符串中使用英文缩写表示星期几和月份。这会导致问题,因为我使用 ClamAV API 的 Java 程序确实尊重当前语言环境,因此希望星期几和月份名称具有本地缩写。

datetime 格式需要与ctime生成的格式相同:

Www Mmm dd hh:mm:ss yyyy

其中 Www 是工作日,Mmm 是月份,dd 是月份中的日期,hh:mm:ss 是时间,yyyy 是年份。

我可以重写 Java 程序以始终假定英语日期,但我更乐意向 ClamAV 提交补丁,因为这对我来说似乎是他们这边的一个错误。

4

1 回答 1

4

strftime("%c", ...应该为您提供当前语言环境的首选日期和时间表示。或者(仍然使用strftime)您可以模拟ctime的格式,但使用%b当前语言环境月份缩写、%a当前语言环境工作日缩写等等。

于 2010-05-06T04:11:53.613 回答