我应该调用什么C函数来获取正在执行程序的语言环境的格式化日期和时间?
我问这个问题是因为我使用ClamAV守护程序API遇到了问题 . VERSION
命令返回最新病毒定义的日期和时间,但代码使用 ctime
调用来格式化它 . 据我所知, ctime
没有根据当前语言环境格式化日期时间,并使用英语缩写表示一周中的几天和返回字符串中的月份 . 这会导致问题,因为我使用ClamAV API的Java程序确实遵循当前的语言环境,因此希望星期几和月份名称具有本地缩写 .
日期时间格式需要与ctime生成的格式相同:
Www Mmm dd hh:mm:ss yyyy其中Www是工作日,Mmm是月份的字母,dd是月份的日期,hh:mm:ss时间,yyyy年份 .
我可以重写Java程序以始终假设英语日期,但我更乐意向ClamAV提交补丁,因为它似乎是他们身边的一个错误 .
1 回答
strftime("%c", ...
应该为您提供当前区域设置的首选日期和时间表示 . 或者(仍然使用strftime
)您可以模拟ctime
的格式,但使用%b
表示当前语言环境月缩写,%a
表示当前语言环境工作日缩写,依此类推 .