将日期时间转换为格式ddd MM / dd / yyyy HH:mm:ss

时间:2016-05-11 15:04:50

标签: c# datetime

在下面的代码片段中,我将字符串值“item.Date”传递给字符串“Date” 我想将其转换为此格式ddd MM/dd/yyyy HH:mm:ss

转换为字符串以及以上格式我认为不顺利。

我尝试使用:

DateTime dateformatted =  DateTime.ParseExact(item.Date, "ddd dd MMM yyyy h:mm tt", null);

显示错误。任何人都可以帮忙

foreach (var item in data)
{
    model.Add(new MailDetailDTO
    {
        Attributes = item.Attribute1,
        Date = item.Date,
        From = item.SentFrom,
        FromOrg = item.OrganizationName,
        IsConfidential = item.IsConfidential,
        MailID = item.MailHeaderID,
    }
}

1 个答案:

答案 0 :(得分:0)

这就是MSDN上的ParseExact API documentation必须说的:

  

字符串表示形式必须与指定的匹配   格式正确

这意味着您在item.Date字符串属性中存储日期时间值的格式与您作为参数传递的自定义日期时间格式ddd dd MMM yyyy h:mm tt存在一定的不匹配ParseExact API。

看一下下面的代码片段:

    private static void DateTimeForatError()
    {
        var item = "Sun 22-May-2016 3:52 AM";
        DateTime dateformatted = DateTime.ParseExact(item, "ddd dd MMM yyyy h:mm tt", null); //results in exception
    }

项变量中存在的日期时间字符串值看起来可解析,但下一行导致String was not recognized as a valid DateTime.错误。这是因为我使用-连字符作为日,月和年的分隔符,而自定义格式字符串dd MMM yyyy使用空格。只要在项目变量中存储日期时间字符串值的方式存在一个单一的差异,该变量不符合自定义格式字符串ddd dd MMM yyyy h:mm tt,它就会爆发。我将item的值设为Sun 22 May 2016 3:52 AM的那一刻就成功了。您只需更改MailDetailDTO对象的对象中item.Date的值,使其与自定义日期时间字符串格式匹配,以消除错误 OR 更改自定义日期时间格式字符串您要传递到PraseExact API,以便将其与来自后端数据的item.Date中的日期时间值格式相匹配。