首页 > 解决方案 > DateTime 现在将 Datetime 字符串转换为指定格式

问题描述

所以我需要将当前日期的字符串格式转换为我的控制台应用程序的日期时间,但它返回的格式错误,我为此使用 ParseExact

var currentDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); // 2018-06-13 11:10:07.949
var todayDate = DateTime.ParseExact(currentDate, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); // 13/06/2018 11:10:07

我评论了我收到的输出。

我的问题是:为什么它会按照我指定的方式进行转换?

标签: c#datetime

解决方案


使用 ParseExact,您可以提供有关什么是输入日期时间格式的信息。如果您想将其格式化以输出,您将在ToString方法中执行此操作,就像您在第一行中所做的那样。因此,您的代码执行此操作:

currentDate将是给定格式的字符串

todayDate将是DateTime对象。如果你想todayDate以给定的格式输出,你应该这样做:

todayDate.ToString("yyyy-MM-dd HH:mm:ss.fff");

要输出当前日期时间,就足够了

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");

DateTime 对象永远是 DateTime,你只能为其设置输出格式,而 C# 将永远知道如何将 DateTime 作为一个对象来处理。在您当前的代码中,您不必要地创建字符串,转换为 DateTime,再次转换为字符串......


推荐阅读