给定一个未分区的 DateTime 和一个时区,我如何在 NodaTime 中构造一个瞬间?

Given an unzoned DateTime and a timezone, how can I construct an instant in NodaTime?

我有一个 DateTime 明确构造。

var myDateTime = new DateTime(2015,1,1,0,0,0);

我有一个明确获得的时区。

var myTimeZone = DateTimeZoneProviders.Tzdb["America/Los_Angeles"];

myDate 已知在 myTimeZone

中表示

我应该如何使用此信息使用 NodaTime 生成 ZonedDateTimeInstant

首先,将您的 DateTime 转换为 LocalDateTime

LocalDateTime ldt = LocalDateTime.FromDateTime(myDateTime);

然后你可以将它分配到一个区域:

ZonedDateTime zdt = ldt.InZoneLeniently(myTimeZone);

并将其映射回瞬间:

Instant instant = zdt.ToInstant();