Существует ли API для преобразования формата “ГГГГМДДХХМ ММСС.UUUUUU-TZO” в C # DateTime?

StackOverflow https://stackoverflow.com/questions/928051

Вопрос

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

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

Это было полезно?

Решение

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

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

В остальном это выглядело бы примерно так:

DateTime.ParseExact("20080807144334.410187", "yyyyMMddHHmmss.ffffff", System.Globalization.CultureInfo.InvariantCulture)

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top