2012-05-17 5 views

ответ

1

DateTime.Parse() не распознает любой из этих форматов. Однако вы можете указать пользовательские форматы, если вместо этого вы используете ParseExact(). Информация о том, как указать строки формата DateTime, - here.

Например, строка формата для первого формата будет "MMMM dd, h:mmtt 'GMT'zzz".

Невозможно записать нечисловые обозначения часового пояса с строками формата DateTime, поэтому второй формат немного сложнее. Я бы, наверное, просто проверил эту ситуацию раньше времени. Когда это произойдет, вы можете просто отрубить последние 3 буквы с конца и использовать таблицу поиска, чтобы преобразовать их в смещения GMT, чтобы применить к DateTime, которое вы получаете от разбора первой части строки.

+0

Спасибо, что может помочь. – Emon

+0

Спасибо, это сработало! – Emon

2

К сожалению DateTime.Parse не понимаю тех часовых поясов. Аббревиатуры трех букв не являются хорошим способом указать часовой пояс, потому что существует много двусмысленных сокращений. Например, «КНТ» может означать либо «Центральное стандартное время», либо «Китайское стандартное время».

Если вы не знаете, в какой стране находится часовой пояс (и я предполагаю, что вы этого не делаете), вам, вероятно, не повезло.

+0

Спасибо. DateTime.Parse выбрасывает исключение, потому что оно не понимает формат. К сожалению, у меня нет контроля над форматом, поскольку я получаю данные из внешнего источника ... – Emon

+0

@Emon: Да, но я думаю, что основная проблема заключается в том, что то, что вы пытаетесь сделать, возможно, невозможно. Или, по крайней мере, вам нужно будет предоставить дополнительную информацию (например, страну, из которой поступают данные), чтобы отличить неоднозначные случаи. –

+0

Мне нужно иметь дело только с GMT и EST. Я попробую DateTime.ParseExact(), посмотрим, поможет ли это ... – Emon

Смежные вопросы