我有一些代码正在从胖客户端应用程序
中记录格式的时间戳DateTime.UtcNow.ToString("MM/dd/yy HH:mm:ss")
现在,在中国运行的客户端(不确定究竟是哪个区域设置),这将在日志中生成格式为
的日期11-20-13 02:14:03
我注意到它正在使用 - 而不是/来划分部分,即使我明确地想要/
我尝试将当前文化设置为简体中文zh-CN但我无法重现远程客户端如何生成该字符串
当前区域性区域设置是否会影响此格式字符串的输出?或者是否有其他一些我不知道的含义?
答案 0 :(得分:4)
是的,/
字符是占位符,用于当前文化用于分隔日期部分的任何内容。来自MSDN:
“/”自定义格式说明符表示日期分隔符,用于区分年,月和日。从当前或指定区域性的DateTimeFormatInfo.DateSeparator属性中检索适当的本地化日期分隔符。
与其他格式说明符一样,您可以使用/
转义\
:
DateTime.UtcNow.ToString(@"MM\/dd\/yy HH\:mm\:ss")
或者在格式化字符串时指定显式文化:
DateTime.UtcNow.ToString("MM/dd/yy HH:mm:ss", CultureInfo.InvariantCulture)
答案 1 :(得分:3)
是的,这就是它的工作原理。 /
正在被本地日期分隔符替换。这同样适用于:
作为时间分隔符。您可以在MSDN上找到更多信息:Custom Date and Time Format Strings。
要更改它,请使用\
:
DateTime.UtcNow.ToString(@"MM\/dd\/yy HH\:mm\:ss")