C#TryParseExact CultureInfo.InvariantCulture在区域性更改时更改行为
我正在尝试使用以下格式转换日期C#TryParseExact CultureInfo.InvariantCulture在区域性更改时更改行为,c#,parsing,date,datetime,C#,Parsing,Date,Datetime,我正在尝试使用以下格式转换日期“d/MM/yyyy” 例如: 2014年11月5日 2013年12月12日 2012年1月31日 我使用的是TryParseExact方法: private const string DateFormat = "d/MM/yyyy"; Culture = CultureInfo.InvariantCulture; DateTime creationDateConverted; DateTime.TryParseExact(creationDate, DateF
“d/MM/yyyy”
例如:
- 2014年11月5日
- 2013年12月12日
- 2012年1月31日
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,效果会很好。
但如果我不设置该区域性,它将不工作,它将转换为MM/dd/yyyy格式,当然,某些日期不会以该格式传递
我不明白为什么文化会对这个方法产生影响,因为我提供了一个特定的格式和文化不变量
我还试图为这种方法提供一种文化,但没有成功
EDIT:当我说fail时,我的意思是TryParseExact方法返回falseDateTime没有格式。而ToString方法的输出取决于区域性
如果需要特定格式,请使用以下格式:
creationDateConverted.ToString("d/MM/yyyy");
DateTime没有格式。而ToString方法的输出取决于区域性
如果需要特定格式,请使用以下格式:
creationDateConverted.ToString("d/MM/yyyy");
DateTime没有格式。而ToString方法的输出取决于区域性
如果需要特定格式,请使用以下格式:
creationDateConverted.ToString("d/MM/yyyy");
DateTime没有格式。而ToString方法的输出取决于区域性
如果需要特定格式,请使用以下格式:
creationDateConverted.ToString("d/MM/yyyy");
您发布的解析代码不受任何外部区域性设置的影响
但是,当您询问
DateTime
creationDateConverted
的值时,区域性可能会影响所发生的情况。您发布的解析代码不受任何外部区域性设置的影响
但是,当您询问
DateTime
creationDateConverted
的值时,区域性可能会影响所发生的情况。您发布的解析代码不受任何外部区域性设置的影响
但是,当您询问
DateTime
creationDateConverted
的值时,区域性可能会影响所发生的情况。您发布的解析代码不受任何外部区域性设置的影响
但是,当您询问
DateTime
creationDateConverted
的值时,区域性可能会影响所发生的情况。请注意,您发布了解析代码,但是询问为什么它是基于当前区域性进行格式化的,而不显示格式化代码。如果不是绝对强制要求以任何类型的本地化格式显示日期,那么最好以yyyy-MM-dd格式显示日期。此解析代码没有问题,它是区域性不变的。您如何询问结果,即查看creationDateConverted
设置为什么?嗨,jodrell,实际上TryParseExact返回false并将creationDateConverted设置为MinValueNote,您发布了解析代码,但是询问为什么它是基于当前区域性进行格式化的,而不显示格式化代码。如果不是绝对强制要求以任何类型的本地化格式显示日期,那么最好以yyyy-MM-dd格式显示日期。此解析代码没有问题,它是区域性不变的。您如何询问结果,即查看creationDateConverted
设置为什么?嗨,jodrell,实际上TryParseExact返回false并将creationDateConverted设置为MinValueNote,您发布了解析代码,但是询问为什么它是基于当前区域性进行格式化的,而不显示格式化代码。如果不是绝对强制要求以任何类型的本地化格式显示日期,那么最好以yyyy-MM-dd格式显示日期。此解析代码没有问题,它是区域性不变的。您如何询问结果,即查看creationDateConverted
设置为什么?嗨,jodrell,实际上TryParseExact返回false并将creationDateConverted设置为MinValueNote,您发布了解析代码,但是询问为什么它是基于当前区域性进行格式化的,而不显示格式化代码。如果不是绝对强制要求以任何类型的本地化格式显示日期,那么最好以yyyy-MM-dd格式显示日期。此解析代码没有问题,它是区域性不变的。您如何询问结果,即查看creationDateConverted
设置为什么?嗨,jodrell,实际上TryParseExact返回false并将creationDateConverted设置为MinValue“如果您想要特定格式,请使用此格式”-您的示例并不明确,因为它使用了特定于区域性的日期分隔符“/”。例如,在德国文化中,这将呈现为“”。您应该添加一个参数CultureInfo.InvariantCulture.Hi谢谢,我使用的是带有“d/MM/yyyy”的DisplayFormat,所以我不认为这是问题。实际上,问题是creationDate,它在服务器上具有不同的格式,因此您的解决方案是有效的。谢谢大家!“如果您想要一种特定的格式,请使用此格式”-您的示例并不明确,因为它使用了特定于区域性的日期分隔符“/”。例如,在德国文化中,这将呈现为“”。您应该添加一个参数CultureInfo.InvariantCulture.Hi谢谢,我使用的是带有“d/MM/yyyy”的DisplayFormat,所以我不认为这是问题。实际上,问题是creationDate,它在服务器上具有不同的格式,因此您的解决方案是有效的。谢谢大家!“如果您想要一种特定的格式,请使用此格式”-您的示例并不明确,因为它使用了特定于区域性的日期分隔符“/”。例如,在德国文化中,这将呈现为“”。您应该添加一个参数CultureInfo.InvariantCulture.Hi谢谢,我使用的是带有“d/MM/yyyy”的DisplayFormat,所以我不认为这是问题。实际上,问题是creationDate,它在服务器上具有不同的格式,因此您的解决方案是有效的。谢谢大家!“如果你想要一个特定的f