如何转换这个日期时间字符串?

时间:2015-03-24 06:53:51

标签: c# datetime

我从Sharepoint获取此日期时间字符串:

2013-01-01 08:00:00:000

我想将其转换为

2013-01-01 08:00:00 AM

任何想法如何做到这一点?每次我尝试使用Date.Parse时,都会收到错误消息,指出该字符串不是有效的日期时间类型

1 个答案:

答案 0 :(得分:3)

最佳选择是将其解析为DateTime并获取具有特定格式的字符串表示。

string s = "2013-01-01 08:00:00:000";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    dt.ToString("yyyy-MM-dd HH:mm:ss tt", CultureInfo.InvariantCulture).Dump();
    // 2013-01-01 08:00:00 AM
}

根据Jon's comment,您也可以使用ParseExact

DateTime dt = DateTime.ParseExact("2013-01-01 08:00:00:000",
                                  "yyyy-MM-dd HH:mm:ss:fff", 
                                  CultureInfo.InvariantCulture);
string s = dt.ToString("yyyy-MM-dd HH:mm:ss tt", CultureInfo.InvariantCulture);

或者您可以直接格式化ParseExact返回值;

string s = DateTime.ParseExact("2013-01-01 08:00:00:000",
                               "yyyy-MM-dd HH:mm:ss:fff", 
                               CultureInfo.InvariantCulture)
                   .ToString("yyyy-MM-dd HH:mm:ss tt", CultureInfo.InvariantCulture);