Может ли кто-нибудь дать мне самый простой способ создать ZonedDateTime, учитывая «4:30 вечера» и «Америка/Чикаго».Nodatime создать ZonedDateTime с учетом времени и времени
Я хочу, чтобы этот объект представлял это время для текущей даты в этом часовом поясе.
Спасибо!
Я пробовал это ... но, похоже, на самом деле дает мне мгновение в локальном часовом поясе, который получает смещение при создании zonedDateTime.
string time = "4:30pm";
string timezone = "America/Chicago";
DateTime dateTime;
if (DateTime.TryParse(time, out dateTime))
{
var instant = new Instant(dateTime.Ticks);
DateTimeZone tz = DateTimeZoneProviders.Tzdb[timezone];
var zonedDateTime = instant.InZone(tz);
Мне пришлось переключиться на 2.0.0 для функции .At для работы ... тогда мне пришлось использовать: Instant now = clock.GetCurrentInstant(); вместо clock.Now в 2.0.0. –
'At' был добавлен в 1.3.0. Вы, должно быть, были на 1.2.0 раньше. В 1.2 вы должны использовать оператор '+' для объединения «LocalDate» и «LocalTime». (Вы все равно можете использовать это, если хотите.) Но да, метод для часов также изменился и в 2.0. –
В 2.0 вы также можете использовать 'ZonedClock', чтобы сделать вещи проще, если вы собираетесь повторно использовать текущую дату/время из одного и того же часового пояса. –