[英]DateTime.Parse throws FormatException regardless of CultureInfo
[英]C# DateTime.Parse ignores CultureInfo
在澳大利亞工作,並收到來自美國的消息, DateTime
錯誤地解析了字符串“ Dec15”,並返回2016年12月15日而不是2015年12月1日 。 以下摘錄中的“ Dec15”是現實生活中的變量。
var date = DateTime.Parse("Dec15", new CultureInfo("en-AU")); //returns December 1 2015
即使將PC的格式和位置更改為指向美國,我也無法復制。
但是,如果我更改代碼以使用美國文化,則可以復制。
var date = DateTime.Parse("Dec15", new CultureInfo("en-US")); //returns December 15 2016
我不知道該代碼過去曾是一個問題。 我想提供一些幫助,以了解為什么為何使用美國默認的Cultures來忽略/替換CultureInfo
。
感謝您的任何建議。
由於Dec15
不是標准的DateTime格式,因此我猜測解析器無法識別它,無論提供的區域性如何。
為了正確解析它,您可以使用ParseExact
方法提供一種使用格式:
var date = DateTime.ParseExact("Dec15", "MMMyy", CultureInfo.InvariantCulture);
然后為您提供DateTime
對象,以根據需要進一步解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.