[英]C# TryParseExact CultureInfo.InvariantCulture Changing behavior when culture change
我正在尝试使用以下格式"d/MM/yyyy"
转换日期
例如:
- 5/11/2014
- 2013/12/12
- 2012年1月31日
我正在使用TryParseExact方法:
private const string DateFormat = "d/MM/yyyy";
Culture = CultureInfo.InvariantCulture;
DateTime creationDateConverted;
DateTime.TryParseExact(creationDate, DateFormat, Culture,
DateTimeStyles.None, out creationDateConverted);
显示方法是 :
@Html.DisplayFor(m => object.date)
date having : DisplayFormat( DataFormatString="{0:d/MM/yyyy}")
托管网站的服务器具有美国文化。
如果我使用Web.config将文化设置为fr-FR,则效果很好。
但是,如果我不设置这种文化就行不通,它会将其转换为MM / dd / yyyy格式,当然某些日期不会与该格式一起传递。
我不明白为什么文化会对该方法产生影响,因为我提供了一种特定的格式和文化不变性。
我还尝试为该方法提供文化fr-Fr,但没有运气
编辑:当我说失败时,我的意思是TryParseExact方法返回false
DateTime没有格式。 ToString方法的输出取决于区域性。
如果您想要特定的格式,请使用以下命令:
creationDateConverted.ToString("d/MM/yyyy");
您发布的解析代码不受任何外部区域性设置的影响。
但是,这种文化可能会影响您查询DateTime
creationDateConverted
的值时发生的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.