c# - 在日期时间格式之间转换

标签 c# date datetime

我面临一个问题,我需要将给定输入格式的日期转换为目标格式。在 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/

相关文章:

javascript - 使用 jQuery/JS 确定星期几

python - 使用 Pandas Numpy Python 从开始和结束年份过滤日期时间集

python - Pandas datetime 函数获取季度末的日期

c# - 反射是确定动态对象是否存在属性/方法的最佳方法吗?

PHP 时区转换器

java - 使用Java库解析特定形式的日期

python - 如何检查当前日期和时间是否晚于给定日期和时间

c# - 使用反射调用类的静态方法

c# - 如何从 Datagridview C# 更新数据库

c# - lambda 是否在每次调用时都创建一个新实例?