我正在尝试学习如何在我的应用程序中使用NodaTime,但是找不到很多关于如何使用这个库做某些事情的例子。
假设:
"2012/08/30 17:45:00"
"yyyy/MM/dd HH:mm:ss"
-5
如何使用NodaTime解析此问题以获得
OffsetDateTime
?Instant
?答案 0 :(得分:4)
使用纯NodaTime代码,目前没有OffsetDateTime
的直接解析器。请参阅documented limitations。但是,您可以通过分别解析LocalDateTime
和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时间 - 而不是偏移量。
你也可以在BCL中使用DateTimeOffset
的文本解析,然后执行:
var odt = OffsetDateTime.FromDateTimeOffset(dto);
无论哪种方式,一旦您拥有OffsetDateTime
,就可以转换为Instant
:
var instant = odt.ToInstant();