Лучший вариант разбора его на 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);
Это было слишком быстро! +1 –
В то время как 'TryParseExact' подходит для введенных пользователем данных, если ожидается, что это будет правильно, и это нормально, если неверные данные приводят к исключению, это стоит, по крайней мере, рассматривать вместо использования' ParseExact'. –
Ничего себе, такой быстрый ответ! Благодаря! Это работает! У меня есть еще один вопрос. Есть ли способ найти формат даты и времени, а затем проанализировать его в соответствии с этим форматом? Потому что времена могут быть разными в зависимости от часового пояса – coffeeak