这是昨天回答的问题的后续行动。
Convert 12hr Time String to DateTime object
xml Feed中的那些时间是EST(谁这样做?)但我们的时区是BST。
所以晚上10:30是UTC时间凌晨02:30或BST上午03:30
但是,TryParseExact在当地时间晚上10:30产生(假设没有时区信息可以预期)
所以问题;我如何解析那个时间为世界贸易组织上午02:30而不是北京时间晚上10:30?
答案 0 :(得分:3)
然而,TryParseExact在当地时间晚上10:30产生
不,它没有。除非你告诉它。默认情况下,除非模式中有任何偏移指示,否则解析方法将返回DateTime
Unspecified
DateTime
的值 - 这完全合适,因为没有指定任何信息。如果你只是将它转换为一个字符串,它将假设它实际上是一个本地时间,但这不是值本身所说的。你需要理解三种DateTimeOffset
- 它是Kind
,但这就是我们在BCL中得到的。
您可以将其传递给相应的broken model IMO以应用特定时区并获得适当的LocalTime
,但您可以记住所涉及的实际时区。 (偏移量与时区不同。)
或者,您可以使用我的TimeZoneInfo
项目,它可以更清楚地区分不同的逻辑类型。您将解析为LocalDate
,然后决定加入哪个LocalDateTime
以生成ZonedDateTime
,然后您可以使用“美国”将其转换为{{1}} / Los_Angeles“时区(或等效的Windows;选择权在你手中)。在执行转换时,如果给定的本地时间由于夏令时转换而无效或不明确,您可以指定要发生的事情。