我想以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;
答案 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
一起使用时可能会引起问题。
编辑:(根据您的评论)如果updatedDate
是DateTime
对象,则可以这样做:
var time = updatedDate.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
答案 1 :(得分:0)
使用h:m:s代替hh:mm:ss。 “ hh”表示小时应写为2位数字。因此,预计分钟数和秒数都是08,而不是8。