2017-01-16 5 views
0

Когда у вас есть string, который отформатирован в UTC Time, как я могу отформатировать его до DateTime, но местное время?Формат UTC Время Время Местное время

Например, если у меня есть код, приведенный ниже, это неправильно форматирует мой код (это означает неправильное время)

string dateformatted = "2017-01-10T11:13:00-07:00" 
DateTime.Parse(Convert.ToString(dateformatted)); 

Однако выход из этого

01/10/2017 1:13:00 PM 

Который 2 часа больше, чем от фактического времени 11:13:00. Как преобразовать строку в нужное время?

ответ

2

Согласно MSDN docs:

Возвращаемый тип Значение: DateTime

Объект, который эквивалентен дате и времени, содержащейся в сек. Как правило, метод Parse возвращает объект DateTime, вид которого - DateTimeKind.Unspecified. Однако метод Анализировать также может выполнять преобразование часового пояса и установите значение свойства Вид по-разному, в зависимости от значений х и стилей параметров:

Если:

+-------------------------------------------------------------------------------------------+---------------------------------------------------------------------+--------------------+ 
    |            If           |       Time zone conversion      | Kind property | 
    +-------------------------------------------------------------------------------------------+---------------------------------------------------------------------+--------------------+ 
    | s contains time zone information.               | The date and time is converted to the time in the local time zone. | DateTimeKind.Local | 
    +-------------------------------------------------------------------------------------------+---------------------------------------------------------------------+--------------------+ 
    | s contains time zone information, and styles includes the AdjustToUniversalflag.   | The date and time is converted to Coordinated Universal Time (UTC). | DateTimeKind.Utc | 
    +-------------------------------------------------------------------------------------------+---------------------------------------------------------------------+--------------------+ 
    | s contains the Z or GMT time zone designator, and styles includes the RoundtripKind flag. | The date and time are interpreted as UTC.       | DateTimeKind.Utc | 
    +-------------------------------------------------------------------------------------------+---------------------------------------------------------------------+--------------------+ 

Вы должны добавить часовой пояс.

3

Я считаю, что вы ищете перегруженность Parse. Третий параметр, DateTimeStyles, позволит принудительно или запретить преобразование между локальным и UTC раз. Options включают: AdjustToUniversal, AssumeLocal и AssumeUniversal (среди прочих).

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