这是昨天回答的问题的后续内容..
xml 提要中的那些时间是 EST(谁做的?),但我们的时区是 BST。
所以晚上 10:30 是 02:30 AM UTC 或 03:30 AM BST
但是,TryParseExact 在本地时间产生 10:30PM(因为没有时区信息,这是可以预期的)
所以这个问题;如何将该时间解析为 UTC 上午 02:30 而不是 BST 晚上 10:30?
这是昨天回答的问题的后续内容..
xml 提要中的那些时间是 EST(谁做的?),但我们的时区是 BST。
所以晚上 10:30 是 02:30 AM UTC 或 03:30 AM BST
但是,TryParseExact 在本地时间产生 10:30PM(因为没有时区信息,这是可以预期的)
所以这个问题;如何将该时间解析为 UTC 上午 02:30 而不是 BST 晚上 10:30?
但是,TryParseExact 产生当地时间晚上 10:30
不,它没有。除非你告诉它。默认情况下,除非模式中有任何偏移指示,否则解析方法将返回DateTime
带有Kind
of 的值Unspecified
- 这是完全合适的,因为没有指定任何信息。如果您只是将其转换为字符串,它将假定它实际上是本地时间,但这不是值本身所说的。您需要了解这三种DateTime
- 这是一个损坏的模型 IMO,但这就是我们在 BCL 中得到的。
您可以将其传递给适当TimeZoneInfo
的应用特定时区并获得适当的DateTimeOffset
,尽管随后由您来记住所涉及的实际时区。(偏移量与时区不同。)
或者,您可以使用我的Noda Time项目,它可以更清楚地区分不同的逻辑类型。您将解析为 a LocalTime
,然后决定与哪个LocalDate
连接以生成LocalDateTime
,然后您可以ZonedDateTime
使用“America/Los_Angeles”时区(或 Windows 等效时区;选择权在您)将其转换为 a 。在执行该转换时,您将指定如果给定的本地时间由于夏令时转换而无效或不明确,您希望发生什么。