繁体   English   中英

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

[英]How do you obtain a formatted date and time for the current locale in C?

我应该调用什么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提交补丁,因为对我而言这似乎是一个错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM