格式化日期时间-忽略区域性

本文关键字:区域性 日期 时间 格式化 | 更新日期: 2023-09-27 18:12:24

我需要将日期格式化为以下格式:

M-d-yyyy

我试着使用:

string.Format("{0:M-d-yyyy}", DateTime.Now)

但是输出字符串将取决于运行它的计算机上的CurrentCulture,所以有时输出可能是07/09/201407.09.2014而不是09-07-2014

如何方便地防止它根据区域性转换它并将其视为文字字符串?

格式化日期时间-忽略区域性

使用CultureInfo.InvariantCulture作为区域性或提供程序参数。

String.Format(CultureInfo.InvariantCulture, "{0:M-d-yyyy}", DateTime.Now)

使用CultureInfo.InvariantCulture作为IFormatProvider参数:

DateTime.Now.ToString("M-d-yyyy", CultureInfo.InvariantCulture);

你可以这样设置你的程序的区域性:

Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;`

你也可以使用一个特定的文化,如果你想(我认为en-US是你需要的)

使用如下:

DateTime.Now.ToString("d", DateTimeFormatInfo.InvariantInfo);

或应用其他格式规范,详见http://msdn.microsoft.com/en-us/library/az4se3k1%28v=vs.110%29.aspx

根据您的情况,可以这样写:

DateTime.Now.ToString("M-d-yyyy", DateTimeFormatInfo.InvariantInfo);

认为,

您可以在DateTime对象上使用.ToString()方法来格式化它。你的代码看起来像这样:

DateTime.Now.ToString("M-d-yyyy");

关于日期时间格式化的更多信息可以在MSDN上找到:http://msdn.microsoft.com/en-us/library/zdtaw1bw%28v=vs.110%29.aspx

你可以试试日期。ToString (MM/dd/yy, yyyymmddFormat);

或试试这个链接里的东西http://social.msdn.microsoft.com/forums/en - us/af4f5a1e f81d - 47 - fe - 981 d - 818 - e785b8847/convert字符串- - datetime对象

如果您喜欢,可以将字符串强制为标准格式