C# 时间格式使用“am”和“pm”而不是上午/下午?
我找不到有关如何使用 CultureInfo 类(或所需的任何内容)以“am”和“pm”(注意句点)而不是默认的 AM 和 PM 格式显示格式化时间的信息。
首先,关于使用“am”/“pm”而不是 AM/PM 的文化信息是什么?有没有办法使用格式提供程序而不是字符串替换之类的黑客来做到这一点?谢谢。
I can't find information on how to use the CultureInfo classes (or whatever is needed) to display a formatted time in "a.m." and "p.m." (note the periods) instead of the default AM and PM.
First, what culture info surrounds the use of "a.m."/"p.m." instead of AM/PM? Is there a way to do this using format providers and not a hack such as string replacements? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看
DateTimeFormatInfo
类中提供的内容 由CultureInfo.DateTimeFormat
属性公开。它的AMDesignator
和PMDesignator
属性允许您设置用于这些值的字符串。请特别注意该链接的备注部分,特别是:
如果您从当前、不变或特定区域性中提取 CultureInfo 及其子信息对象,则默认情况下它们往往是只读的。准备好在这些对象上使用
Clone()
方法来检索可写副本,您可以返回这些副本并用于设置格式字符串。一旦您拥有了根据需要设置了 AM/PM 属性的
DateTimeFormatInfo
,您就可以将其作为IFormatProvider
提供给String.Format() 和
Object.ToString()
。Look at what's available in the
DateTimeFormatInfo
class exposed by theCultureInfo.DateTimeFormat
property. ItsAMDesignator
andPMDesignator
properties let you set the strings used for those values.Take special note of the Remarks section of that link, in particular:
If you pull CultureInfo and its child info objects from the current, invariant, or a specific culture, they tend to be read-only by default. Be prepared to use the
Clone()
method on those objects to retrieve writable copies that you can return and use to set format strings.Once you have a
DateTimeFormatInfo
with the AM/PM properties set as desired, you can supply that as theIFormatProvider
used by methods likeString.Format()
andObject.ToString()
.