格式化DateTime - 忽略文化

时间:2014-07-09 18:35:37

标签: c#

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

M-d-yyyy

我尝试使用:

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

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

如何根据文化对其进行转换并将其视为文字字符串?

6 个答案:

答案 0 :(得分:9)

使用CultureInfo.InvariantCulture作为culture或provider参数。

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

答案 1 :(得分:6)

使用CultureInfo.InvariantCulture作为IFormatProvider参数:

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

答案 2 :(得分:1)

您可以使用以下方式设置程序的文化:

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

如果您愿意,也可以使用特定的文化(我认为en-US是您需要的文化)

答案 3 :(得分:0)

使用以下内容:

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);

此致

答案 4 :(得分:-1)

您可以使用.ToString()对象上的DateTime方法对其进行格式化,无论您喜欢什么。您的代码看起来像这样:

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

有关格式化日期时间的更多信息,请访问MSDN:http://msdn.microsoft.com/en-us/library/zdtaw1bw%28v=vs.110%29.aspx

答案 5 :(得分:-1)

你可以试试 date.ToString(" MM / dd / yy",yyyymmddFormat);

或 试试这个链接是什么 http://social.msdn.microsoft.com/Forums/en-US/af4f5a1e-f81d-47fe-981d-818e785b8847/convert-string-to-datetime-object

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