Как я могу преобразовать строки следующих форматов DateTime в C#:Преобразовать определенную строку в DateTime в C#
- 17 мая, 4:52 вечера GMT + 01: 00
- 17 мая 3:57 вечера EDT
Поддерживает ли .NET поддержку этих строк?
Как я могу преобразовать строки следующих форматов DateTime в C#:Преобразовать определенную строку в DateTime в C#
Поддерживает ли .NET поддержку этих строк?
DateTime.Parse()
не распознает любой из этих форматов. Однако вы можете указать пользовательские форматы, если вместо этого вы используете ParseExact(). Информация о том, как указать строки формата DateTime, - here.
Например, строка формата для первого формата будет "MMMM dd, h:mmtt 'GMT'zzz"
.
Невозможно записать нечисловые обозначения часового пояса с строками формата DateTime, поэтому второй формат немного сложнее. Я бы, наверное, просто проверил эту ситуацию раньше времени. Когда это произойдет, вы можете просто отрубить последние 3 буквы с конца и использовать таблицу поиска, чтобы преобразовать их в смещения GMT, чтобы применить к DateTime, которое вы получаете от разбора первой части строки.
Convert.ToDateTime(yourDateTimeString);
К сожалению DateTime.Parse
не понимаю тех часовых поясов. Аббревиатуры трех букв не являются хорошим способом указать часовой пояс, потому что существует много двусмысленных сокращений. Например, «КНТ» может означать либо «Центральное стандартное время», либо «Китайское стандартное время».
Если вы не знаете, в какой стране находится часовой пояс (и я предполагаю, что вы этого не делаете), вам, вероятно, не повезло.
Спасибо. DateTime.Parse выбрасывает исключение, потому что оно не понимает формат. К сожалению, у меня нет контроля над форматом, поскольку я получаю данные из внешнего источника ... – Emon
@Emon: Да, но я думаю, что основная проблема заключается в том, что то, что вы пытаетесь сделать, возможно, невозможно. Или, по крайней мере, вам нужно будет предоставить дополнительную информацию (например, страну, из которой поступают данные), чтобы отличить неоднозначные случаи. –
Мне нужно иметь дело только с GMT и EST. Я попробую DateTime.ParseExact(), посмотрим, поможет ли это ... – Emon
Попробуйте метод DateTime Синтаксическая:
Спасибо, что может помочь. – Emon
Спасибо, это сработало! – Emon