我正在尝试在 Windows 中获取长时间格式(例如“hh:mm:ss tt”)。我可以获得这样的短时间格式:
GetLocaleInfoEx(NULL, LOCALE_STIMEFORMAT, format, 100);
我似乎无法为 LOCALE_LTIMEFORMAT
或类似的东西找到常量。我可以得到短时间、短日期和长日期,但是如何查询当前用户的长时间格式?
最佳答案
据我所知,Windows 通过 LOCALE_STIMEFORMAT
(设置为类似于“hh:mm:ss”)定义“长”时间格式,将短时间定义为 LOCALE_SSHORTTIME
(根据 MSDN,它对 Windows 7 及更高版本有效)。
这是否符合您的发现,即它是否符合“区域和语言控制面板”项中的用户偏好?
对于 t
说明符,如果它没有包含在语言环境格式中,那么您要么总是使用自定义格式(如 gbjbaanb 所说),要么检查格式字符串t
或 tt
的存在,如果不存在,请自行添加(不过,对于期望 tt
的文化,这可能会导致奇怪的结果时间,例如)。但这不是必需的,因为语言环境使用的时间格式负责生成有意义的时间字符串(例如,区分上午和下午)。
关于windows - 获取 Windows 长时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109295/