這是記者從昨天回答了問題,一個遵循..解析日期時間沒有時區信息到特定的時區
Convert 12hr Time String to DateTime object
在XML提要那些時間均爲EST(誰做的?),但我們的時區爲BST。
所以10:30 PM是凌晨02:30 UTC或上午3點30 BST
然而,TryParseExact產生在當地時間下午10:30(以預期因爲沒有時區信息)
所以問題;我怎樣才能把時間解析爲02:30 UTC而不是下午10:30 BST?
這是記者從昨天回答了問題,一個遵循..解析日期時間沒有時區信息到特定的時區
Convert 12hr Time String to DateTime object
在XML提要那些時間均爲EST(誰做的?),但我們的時區爲BST。
所以10:30 PM是凌晨02:30 UTC或上午3點30 BST
然而,TryParseExact產生在當地時間下午10:30(以預期因爲沒有時區信息)
所以問題;我怎樣才能把時間解析爲02:30 UTC而不是下午10:30 BST?
然而,TryParseExact產生下午10:30在當地時間
不,不。除非你告訴它。默認情況下,除非模式中存在偏移量的任何指示,否則解析方法將返回DateTime
值,Kind
的值爲Unspecified
- 由於沒有指定信息,因此這是完全合適的。如果你只是把它轉換成一個字符串,它會認爲它實際上是一個本地時間,但這不是價值本身所說的。您需要了解DateTime
三種 - 這是broken model IMO,但這就是我們在BCL中所擁有的。
您可以將其傳遞給合適的TimeZoneInfo
以應用特定的時區並獲得適當的DateTimeOffset
,但您可以隨時記住所涉及的實際時區。 (偏移量與時區不同。)
或者,您可以使用我的Noda Time項目,該項目區分不同的邏輯類型,而更清楚。你會解析爲LocalTime
,然後決定加入哪個LocalDate
以生成LocalDateTime
,然後您可以使用「America/Los_Angeles」時區(或Windows等價物;選擇是您的)將其轉換爲ZonedDateTime
, 。在執行轉換時,如果給定的本地時間由於夏令時轉換而無效或不明確,您可以指定想要發生的情況。
你是對的。它沒有說明。我已經把它的輸出添加到了DateTime.Today中,它必須給它LocalTime類型...我的錯誤。 – 2013-04-11 16:00:14
@daveL:我仍然會推薦使用野田時間,請注意:) – 2013-04-11 16:04:29