簡體   English   中英

將 s 字符串轉換為帶時區的特定 DateTime 格式 - C#

[英]Convert s string to specific DateTime format with timezone - C#

我正在嘗試這段代碼 (c#):

 string input1 = "2009-11-22 01:01:05 +1:30"
                        string input2 = "2009-11-22 01:01:05"
                        DateTime date1 = new DateTime();
                        DateTime date2 = new DateTime();
                        string format = "yyyy-MM-dd hh:mm:ss [z]"
                        DateTime orgDate1 = DateTime.ParseExact(input1, format, null);
                        DateTime orgDate2 = DateTime.ParseExact(input2, format, null);

目的是:

  1. 將術語“[z]”識別為可選參數,以便正確解析 input1 和 input2。
  2. 在 orgDate1 和 orgDate2 中獲取有效的 DateTime 解析值。 問題:即使忽略可選要求,我也無法獲得解析值:
  string input1 = "2009-11-22 01:01:05 +1:30"
                        DateTime date1 = new DateTime();
                        string format = "yyyy-MM-dd hh:mm:ss zzz"
                        DateTime orgDate1 = DateTime.ParseExact(input1, format, null);

我嘗試了很多選擇,例如:

DateTime.ParseExact("2009-11-22 00:00:00 1", "yyyy-MM-dd hh:mm:ss z",null)
DateTime.ParseExact("2009-11-22 00:00:00 1", "yyyy-MM-dd hh:mm:ss Z",null)

但總是得到 formatException。

只有這段代碼有效:

DateTime.ParseExact("2009-11-22 00:00:00Z", "yyyy-MM-dd hh:mm:ssZ",null)

但它返回確切的 UTC 時區,而我需要將它作為參數。

都在上面描述了

好的,經過多次試驗,我發現以下代碼有效:

DateTime.ParseExact("2009-11-22 00:00:00+1", "yyyy-MM-dd hh:mm:ss z",null)

所以保留另一個問題 - 我如何定義帶有可選時區的格式,以便正確解析“2009-11-22 00:00:00+1”和“2009-11-22 00:00:00” ?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM