如何在C#中将mm / dd / yyyy格式转换为dd / mm / yyyy

时间:2018-12-14 11:11:22

标签: c# datetime

我想以dd / M / yyyy hh:mm:ss tt显示日期时间,但即时通讯出现错误-

  

System.FormatException:'字符串未被识别为有效字符串   日期时间。”

样本数据 12/14/2018 8:11:30 PM

预期操作 14/12/2018 8:11:30 PM

C#代码

DateTime dt = DateTime.ParseExact(data.updatedDate.ToString(), "MM/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture);
                string time = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
                ViewBag.attendance_time = time;

2 个答案:

答案 0 :(得分:1)

您需要稍微更改字符串格式,因为您使用的字符串无效。将hh更改为h

DateTime dt = DateTime.ParseExact(data.updatedDate.ToString(), "MM/dd/yyyy h:mm:ss tt",CultureInfo.InvariantCulture);

如果您要传递的字符串可以是月或日的一位数字,则应使用以下内容:

"M/d/yyyy h:mm:ss tt"

如果月份和日期始终有两位数字,则可以使用:

"MM/dd/yyyy h:mm:ss tt"

hh表示小时使用2位数字,h表示使用1位(如果可能)。您还设置了tt,显示AM/PM,当与hh一起使用时可能会引起问题。

编辑:(根据您的评论)如果updatedDateDateTime对象,则可以这样做:

var time = updatedDate.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

答案 1 :(得分:0)

使用h:m:s代替hh:mm:ss。 “ hh”表示小时应写为2位数字。因此,预计分钟数和秒数都是08,而不是8。