繁体   English   中英

如何以不同的格式格式化 DateTime?

[英]How do I format a DateTime in a different format?

我有一个字符串表示某种格式的日期,我希望以不同的方式格式化。 有人告诉我使用DateTime.(Try)ParseExact ,所以我做了:

var dateString = "2016-02-26";
var formatString = "dd/MM/yyyy";

var parsedDate = DateTime.ParseExact(dateString, formatString, null);

你看,我想将日期格式化为dd/MM/yyyy ,所以26/02/2016 但是,此代码会引发 FormatException:

字符串未被识别为有效的 DateTime。

如何以不同的方式格式化 DateTime?

首先, DateTime没有格式。 DateTime包含一个时刻和一个标志,指示该时刻是LocalUtc还是Unspecified

格式化DateTime的唯一时刻是将其值作为字符串输出时。

您提供给(Try)ParseExact的格式字符串是要解析的日期(时间)字符串的格式 请参阅MSDN:自定义日期和时间格式字符串以了解如何编写自己的格式字符串。

因此,您要查找的用于解析该字符串的代码是这样的,再次确保格式字符串与输入日期字符串的格式完全匹配:

var dateString = "2016-02-26";
var formatString = "yyyy-MM-dd";

var parsedDate = DateTime.ParseExact(dateString, formatString, null);

现在parsedDate包含一个DateTime值,您可以以所需的格式输出该值(请注意,您必须对/进行转义,因为它将被解释为“当前文化的日期分隔符”,如上述MSDN中所述链接):

var formattedDate = parsedDate.ToString("dd\\/MM\\/yyyy");

这将以所需的格式格式化日期:

26/02/2016

您可以将此用于String日期

DateTime.ParseExact(dateString, format, provider);

和提供者价值

CultureInfo provider = CultureInfo.InvariantCulture;

Microsoft 文档中所述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM