0

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

20120510000000000

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

    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”并将其发布到“结果”列表中。

4

3 回答 3

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;
于 2012-05-22T02:59:36.360 回答
2

如果日期保证为 [year][month][day][hour][minute][second][millisecond] 格式(看起来像),您可以使用简单的字符串操作:

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);
于 2012-05-22T02:58:22.713 回答
0

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

于 2012-05-22T04:24:29.763 回答