首页 文章

如何在C中获取当前语言环境的格式化日期和时间?

提问于
浏览
0

我应该调用什么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 回答

  • 4

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

相关问题