我正面临一个问题,我需要将给定输入格式的日期转换为目标格式.有没有标准的方法在C#中执行此操作?
举个例子说我们yyyy.MM.dd
有源格式和目标格式MM/dd/yyy
(当前文化).
问题出现了,因为我使用的解析策略优先考虑当前的文化,然后如果失败则尝试从已知格式列表中解析.现在说我们在源文化上面有两个等效日期(2015.12.9
),另一个在当前文化(9/12/2015
)中.然后,如果我们试图解析这两个日期,第一个案例的月份将是12,而第二个案例的月份将是9,因此我们有一个不一致(它们应该是相同的确切日期).
我相信,如果存在它应该是一样的东西
DateTime.Convert(2015.12.9, 'yyyy/MM/dd', CultureInfo.CurrentCulture).
有任何想法吗?
编辑:
谢谢大家的意见和建议,但大多数人对我的问题的解释并不完全正确.大多数人回答的是以给定格式直接解析,然后转换为CurrentCulture.
DateTime.ParseExact("2015.12.9", "yyyy.MM.dd", CultureInfo.CurrentCulture)
尽管它采用CurrentCulture格式,但仍将按月返回12.我的问题是,是否有任何标准方法将日期转换为yyyy.MM.d
格式, MM/dd/yyy
以便月份现在位于正确的位置并THEN
在目标文化中进行解析.这种功能可能是不存在的.
您正在寻找DateTime.ParseExact:
DateTime parsedDate = DateTime.ParseExact("2015.12.9", "yyyy.MM.d", CultureInfo.InvariantCulture);
或者eventualy DateTime.TryParseExact如果你对输入字符串没有信心.