Здравствуйте, vaa, Вы писали:
vaa>Нет ли где простой памятки по преобразовыванию строки в DateTime
vaa>DateTime в DateTimeOffset и обратно, но с учетом TimeZoneInfo?
Памятка для каждого случая своя, это Вам решать, как нужно преобразовывать именно по логике Вашей программы.
Как, например, конвертировать DateTimeOffset в таймзоне +3 в DateTime с DateKind.Local, если текущая таймзона -2?
Или как конвертировать DateTime с DateKind.Unspecified в DateTimeOffset, какую таймзону ему ставить?
Как работает конверсия, которую предоставляет фреймворк описано
тут и
тут.
Насколько она Вам подходит — только Вы можете ответить.
Здравствуйте, vmpire, Вы писали:
V>Здравствуйте, vaa, Вы писали:
vaa>>Нет ли где простой памятки по преобразовыванию строки в DateTime
vaa>>DateTime в DateTimeOffset и обратно, но с учетом TimeZoneInfo?
V>Памятка для каждого случая своя, это Вам решать, как нужно преобразовывать именно по логике Вашей программы.
V>Как, например, конвертировать DateTimeOffset в таймзоне +3 в DateTime с DateKind.Local, если текущая таймзона -2?
V>Или как конвертировать DateTime с DateKind.Unspecified в DateTimeOffset, какую таймзону ему ставить?
Понял. У меня в json время по мск.
делаю так:
let dt_unspec = DateTime.Parse("2022-03-09 12:00")
(* let dt_local = DateTime.SpecifyKind(dt_unspec, DateTimeKind.Local) *)
let dto =
DateTimeOffset(dt_unspec, TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time").BaseUtcOffset)
Здравствуйте, vaa, Вы писали:
V>>Памятка для каждого случая своя, это Вам решать, как нужно преобразовывать именно по логике Вашей программы.
V>>Как, например, конвертировать DateTimeOffset в таймзоне +3 в DateTime с DateKind.Local, если текущая таймзона -2?
V>>Или как конвертировать DateTime с DateKind.Unspecified в DateTimeOffset, какую таймзону ему ставить?
vaa>Понял. У меня в json время по мск.
vaa>делаю так:
vaa>vaa>let dt_unspec = DateTime.Parse("2022-03-09 12:00")
vaa>(* let dt_local = DateTime.SpecifyKind(dt_unspec, DateTimeKind.Local) *)
vaa>let dto =
vaa> DateTimeOffset(dt_unspec, TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time").BaseUtcOffset)
vaa>
Вот видите, я ровно об этом и писал. Вы
знаете, что у вас время по MSK, в другом проекте это знание может быть другим, поэтому общих правил тут быть не может.
Если дат в прошлом (до изменения правил таймзоны) нет, то так, как у Вас должно нормально работать правильно