我不知道DateTime的格式,因为网页有多种语言,并且有多种日期时间格式可用。我必须将datepicker UI中的波兰日期格式更改为d.m.yyyy,尽管ISO标准是YYYY-mm-dd。 .NET使用ISO标准,但每当我尝试使用Convert.ToDateTime(stringDate)
时,我都会遇到异常String is not recognized as valid DateTime
。我尝试使用 Convert.ToDateTime(stringDate,CultureInfo.InvariantCulture)
,但没有帮助。如何成功转换为DateTime?
实施例:
item.arrival
是字符串,可以是10种以上的格式。 Convert.ToDateTime
适用于所有人。
但:
波兰语言的item.arrival
日期格式不再是yyyy-mm-dd
(因为我需要更改它)所以Convert.ToDateTime
不再适用于波兰语言。新格式为13.06.2015.
因此,因为格式不是波兰语言的ISO标准,.NET无法进行转换。我希望现在更清楚了。
ArrivalDate = Convert.ToDateTime(item.arrival, CultureInfo.InvariantCulture),
答案 0 :(得分:1)
我必须将datepicker UI中的poland dateformat更改为d.m.yyyy ... 示例:item.arrival是一个字符串,可以是10种以上的格式。 Convert.ToDateTime适用于所有人。但是:poland语言的item.arrival dateformat不再是yyyy-mm-dd(因为我需要更改它)
根据您的说法,您的日期时间转换适用于除波兰语以外的所有人,并且您(在您的代码中)知道它何时是波兰语。因此,使用您需要使用的格式处理波兰语特殊,并正常处理其他九种。
答案 1 :(得分:1)
这就是我所做的。我把它放在一些PageBase类中,所以它应该比一些" if-poland-date"更加通用且不易出错的解决方案。关于项目的陈述。
CultureInfo newCulture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture;
if (newCulture.TwoLetterISOLanguageName == "pl")
{
DateTimeFormatInfo myDTFI = new CultureInfo("hr-HR", false).DateTimeFormat;
newCulture.DateTimeFormat = myDTFI;
CultureInfo ci = new CultureInfo("pl-PL");
DateTimeFormatInfo dateformat = new DateTimeFormatInfo();
ci.DateTimeFormat = myDTFI;
CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("pl-PL", CultureAndRegionModifiers.Replacement);
obj.LoadDataFromCultureInfo(ci);
CultureAndRegionInfoBuilder.Unregister("pl-PL");
obj.Register();
}