我正在尝试学习如何在我的应用程序中使用 NodaTime,但找不到很多如何使用该库执行某些操作的示例。
鉴于:
- 日期/时间文本
"2012/08/30 17:45:00" - 格式字符串是
"yyyy/MM/dd HH:mm:ss" - 与 UTC 的日期/时间偏移量是
-5
我如何用 NodaTime 解析这个以获得一个
OffsetDateTime?Instant?
我正在尝试学习如何在我的应用程序中使用 NodaTime,但找不到很多如何使用该库执行某些操作的示例。
鉴于:
"2012/08/30 17:45:00""yyyy/MM/dd HH:mm:ss"-5我如何用 NodaTime 解析这个以获得一个
OffsetDateTime?Instant?使用纯 NodaTime 代码,目前没有用于OffsetDateTime. 请参阅记录的限制。但是,您可以通过分别解析 aLocalDateTime和 an来构造一个Offset:
var ldt = LocalDateTimePattern.CreateWithInvariantCulture("yyyy/MM/dd HH:mm:ss")
.Parse("2012/08/30 17:45:00")
.Value;
var o = OffsetPattern.GeneralInvariantPattern
.Parse("-05")
.Value;
var odt = new OffsetDateTime(ldt, o);
有一个类似的解析器Instant,但它需要 UTC 时间 - 而不是偏移量。
您也可以只使用DateTimeOffsetBCL 中的文本解析,然后执行以下操作:
var odt = OffsetDateTime.FromDateTimeOffset(dto);
无论哪种方式,一旦你有了OffsetDateTime,它就可以转换为Instant:
var instant = odt.ToInstant();