我有一些代码以胖客户端应用程序的格式记录时间戳
DateTime.UtcNow.ToString("MM/dd/yy HH:mm:ss")
现在,在中国运行的客户端(不确定具体是哪个区域设置)这会在日志中生成格式为
11-20-13 02:14:03
我注意到它使用 - 而不是/来分隔部分,即使我明确想要/
我试图将当前文化设置为简体中文 zh-CN,但我无法重现远程客户端如何生成该字符串
当前区域性是否影响此格式字符串的输出?还是/有其他我不知道的含义?
最佳答案
是的,/
字符是当前文化用于分隔日期部分的任何占位符。来自 MSDN :
The "/" custom format specifier represents the date separator, which is used to differentiate years, months, and days. The appropriate localized date separator is retrieved from the DateTimeFormatInfo.DateSeparator property of the current or specified culture.
与其他格式说明符一样,您可以使用 \
对 /
进行转义:
DateTime.UtcNow.ToString(@"MM\/dd\/yy HH\:mm\:ss")
或者在格式化字符串时指定明确的文化:
DateTime.UtcNow.ToString("MM/dd/yy HH:mm:ss", CultureInfo.InvariantCulture)
关于c# - DateTime.ToString 格式表达式是否受当前区域性影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20086656/