2017-02-12 47 views
-2

我在這裏經歷了很多關於日期時間格式轉換的問題和答案。幾乎所有的都與將格式轉換爲字符串輸出有關。如何將dd/MM/yyyy中的DateTime轉換爲dd-MM-yyyy中的DateTime?

現在我想爲DateTime可變轉換在本地格式(DD/MM/YYY)與日期時間變量DD-MM-YYYY格式用於提供它作爲一個API方法的輸入參數。

我已經嘗試了幾種方法,比如在解析時提及InvariantCulture和所有。甚至嘗試使用希伯來語日曆設置當前的文化。一切都以本地格式(dd/MM/yyyy)本身返回DateTime,並且在向API提供該日期時間變量時返回錯誤消息,以僅以dd-MM-yyyy格式提供日期時間。

有沒有辦法將日期時間變量轉換爲特定格式?

編輯:

有沒有什麼辦法時間值轉換爲特定的格式?我附上了一些屏幕截圖供參考。

我正在使用第三方API,我不想透露這些方法。

Method structure

Error response from the API method

現在我希望現在有用於指定日期時間變量數據的方式。

+1

能否請您分享您發送日期時間到API的例子嗎? DateTime是什麼DateTime你不能修改類型。可能你錯過了別的東西。 – kat1330

+0

分享您的代碼。所以,它可以被修改。 –

+6

'DateTime'結構不具有* format *的概念。一旦你將它轉換爲格式有意義的字符串, –

回答

1

首先 - DateTime沒有一些格式。 string表示DateTime可以有格式。

DateTime轉換爲特定格式string可以使用ToString() 方法:

DateTime dt = DateTime.Now; 
string date = dt.ToString("dd-MM-yyyy"); 

爲了解析stringDateTime你可以使用ParseExact()方法:

string date = "02/03/2017"; 
DateTime dt = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture); 

or 

string date = "02-03-2017"; 
DateTime dt = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture); 

您進行修改:

Convert.ToDateTime()沒有CultureInfo嘗試使用您的PC文化將string轉換爲DateTime。如果你想使用Convert.ToDateTime()使用重載的方法接受string文化:

DateTime dt = Convert.ToDateTime(someDate, CultureInfo.InvariantCulture); 
+0

謝謝,我希望沒有辦法指定日期時間格式。 –

+0

@MONUTHOMAS沒有** a **日期時間格式,根據您的上下文有幾乎無限制的格式變體。用戶會話具有文化信息並用於默認格式。如果您需要針對特定​​上下文的特定格式,請爲該上下文定義該格式並格式化日期時間。順便說一句原始日期時間值存儲在Int64(DateTime.Ticks) –

+0

@SirRufo感謝您的信息。我也嘗試將當前線程文化設置爲希伯來語,因爲希伯來文化具有所需的格式。但那也不適合我,因爲這已經以當地格式返回了日期。 –

0

我使用ToString方法並給出參數的pattren。

例如: DateTime.Now.ToString( 「DD-MM-YYYY」)