无法在“MM / dd / yyyy”中将字符串格式化为DateTime

时间:2017-03-20 01:23:33

标签: c# datetime date-format

我的数据XML以“MM / dd / yyyy”格式存储日期。 但是,在我的页面上显示日期时,它显示为'12 / 12/2006 12:00:00 AM'。

我正在尝试将其转换为我需要的格式:

OrderDate = DateTime.ParseExact(rows[4].ToString(), "MM/dd/yyyy", new CultureInfo("en-US"), DateTimeStyles.None)

但这没有用,日期显示格式错误。

如何保留数据存储方式的格式?

2 个答案:

答案 0 :(得分:0)

你几乎就在那里,当你想要显示它时,你只需要使用ToString()

OrderDate.ToString("d");

这将以所选文化的短日期模式显示。

查看MSDN DateTime.ToString documentationinformation on standard Date and Time format strings

答案 1 :(得分:0)

您可以在ToString方法中指定格式。如果您想要MM/dd/yyyy格式,那么您只需将其传递给方法即可。否则,默认设置是包含DateTime对象的时间部分,默认为12:00:00 AM

如果您尝试从XML解析日期时遇到异常,那么存储的格式很可能与您传递给{{1的格式的格式不匹配}}。解决这个问题的一种方法是尝试使用ParseExactTryParseExact方法解析它(如果失败则返回false),如果第一个方法没有,则使用几种不同的方法成功:一个有4位数年份,一个有两位数年份,一个没有指定任何预期格式(请注意,使用单个数字月份和日期适用于这些字段中的两位数输入):

TryParse