Есть ли API для преобразования из формата "ГГГГММДДЧЧММСС.УУУУУ-ТЗО" в C # DateTime? - PullRequest
2 голосов
/ 30 мая 2009

Пример: «20080807144334.410187-180» (-180 означает GMT минус три часа. В данном случае Рио-де-Жанейро.)

Этот формат строки возвращается, когда я запрашиваю время создания / изменения / доступа к файлу через WMI (это не полностью работает; см. здесь ). Я думаю, я мог бы разобрать это по-идиотски, извлекая год, месяц и т. Д. Из строковых позиций. Но я бы не хотел изобретать велосипед. Конструкторы System.DateTime не поддерживают этот формат. Должен ли я пойти дальше и сделать это по-идиотски или есть что-то лучше?

Ответы [ 2 ]

8 голосов
/ 30 мая 2009

Вы должны иметь возможность использовать DateTime.ParseExact или .TryParseExact, чтобы указать конкретный формат для использования при синтаксическом анализе.

Однако я не думаю, что вы сможете заставить его читать ваш часовой пояс в этом формате (хотя я не могу понять, как заставить его читать часовой пояс в любом формате).

Остальное будет выглядеть так:

DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture)
5 голосов
/ 30 мая 2009

Вам следует взглянуть на метод DateTime.TryParseExact. Это позволит вам передать формат, из которого вы конвертируете.

http://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...