将日期格式转换为mm-dd-yyyyy

时间:2012-05-22 02:52:34

标签: c# asp.net datetime foreach

我正在填写包含日期的“结果”列表。在查询结果中,我得到一组值..其中日期值采用这种格式..

  

201205100亿

在我的代码中,我正在执行以下操作..

    query = service.GetData();
    List<String> results = new List<String>();
    foreach (var item in query)
    {
        results.Add(item.InDate);  
        //This is in this format - 20120510000000000
        //Here I want to convert to mm-dd-yyyy                              
    }
    return results;

我想将上述日期格式转换为“mm / dd / yyyy”并将其发布到“结果”列表。

3 个答案:

答案 0 :(得分:3)

query = service.GetData();
    List<String> results = new List<String>();
    foreach (var item in query)
    {
        var unformattedDate = item.InDate;
        var formattedDate = DateTime.ParseExact(unformattedDate,
                                    "yyyyMMddHHmmssfff",
                                    System.Globalization.CultureInfo.InvariantCulture)
        results.Add(formattedDate);                              
    }
    return results;

答案 1 :(得分:2)

如果日期保证在[年] [月] [日] [小时] [分钟] [秒] [毫秒]格式(看起来像),你可以使用简单的字符串操作:

var newDate = item.InDate.Substring(2, 2) + "-" +
              item.InDate.Substring(4, 2) + "-" +
              item.InDate.Substring(0, 4);

如果你想在DateTime对象中使用它,你可以使用DateTime.ParseExact方法:

var newDate = DateTime.ParseExact(indate, "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

上面提供的答案是正确的。更好地存储您期望的日期格式和要转换显示的日期格式,将其存储在配置文件或资源文件中。硬编码并不好。