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

标签 c# .net timezone nodatime

我有一个显式构造的 DateTime

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

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

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

myDate 已知在 myTimeZone

中表示

我应该如何使用此信息生成 ZonedDateTime 或使用 NodaTime 的 Instant

最佳答案

首先,将您的 DateTime 转换为 LocalDateTime

LocalDateTime ldt = LocalDateTime.FromDateTime(myDateTime);

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

ZonedDateTime zdt = ldt.InZoneLeniently(myTimeZone);

并将其映射回瞬间:

Instant instant = zdt.ToInstant();

关于c# - 给定一个未分区的 DateTime 和一个时区,我如何在 NodaTime 中构造一个瞬间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225991/

相关文章:

c# - 使用 Interlocked.CompareExchange

c# - 如何将属性从一个 .net 对象复制到另一个

azure - 我可以为 Azure Functions 应用程序设置特定时区吗?

ruby-on-rails - rails/PostgreSQL : How can I quickly group records using a datetime field by date in a specific time zone?

c# - var 默认为哪种 int 类型?

c# - 如何将资源语言传递到不同的页面

c# - Session 和 Cookie 有什么区别?

asp.net - 如何在 iTextSharp 中显示水平线

time - 在 Go 中将 UTC 时间转换为 "local"时间

c# - UWP 基于 Jenkins 构建