我面临一个问题,我需要将给定输入格式的日期转换为目标格式。在 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)
这仍将返回 12 作为月份,尽管它采用 CurrentCulture 格式。因此,我的问题是,是否有任何标准方法可以将 yyyy.MM.d
中的日期转换为 MM/dd/yyy
格式,以便月份现在位于正确的位置并 THEN
在目标文化中解析它。这样的功能很可能是不存在的。
最佳答案
DateTime.ParseExact是你要找的:
DateTime parsedDate = DateTime.ParseExact("2015.12.9", "yyyy.MM.d", CultureInfo.InvariantCulture);
或者最终 DateTime.TryParseExact如果您对输入字符串没有信心。
关于c# - 在日期时间格式之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34176798/