2012-06-25 71 views
0

我想將c#中的日期(如2012-06-28T14:30:00-04:00)轉換爲「yyyyMMddTHHmm」格式兩個日期都是字符串。將C#中的2012-06-28T14:30:00-04:00轉換爲yyyyMMddTHHmm格式

string currentDate="2012-06-28T14:30:00-04:00"; 
string requiredDate="yyyyMMddTHHmm" 

當我試圖在此日期轉換與Convert.ToDateTime(),那麼C#返回「20120629T0000-04:00」,但這是不正確的日期。

+1

調查DateTime.ToString()方法 –

+0

我認爲T可能是問題。你可以看看自定義日期格式http://msdn.microsoft.com/en-us/library/8kb3ddd4 – CarlosJ

+0

我試過這個,但沒有找到任何幫助。 –

回答

2

看看Standard Date and Time Format Strings(MSDN)。我想只需在DateTime實例上使用ToString()方法即可。

可能您可能需要在轉換方法的適當重載中指定CultureInfo(MSDN here)。可能服務器和客戶端應用程序處於不同的文化和/或時區中。

0

我不知道這是你想出來

string currentDate="2012-06-28T14:30:00-04:00"; 
DateTime.Parse(currentDate).ToString("o") 

格式這會給你2012-06-29T00:00:00.0000000+05:30

+0

謝謝,我已經試過這個,但這是不正確的,因爲我只需要20120628T14:30,但它給了我29這是不正確的日期。 –

1

DateTime.Parse("2012-06-28T14:30:00-04:00").ToString("yyyyMMddTHHmm")生產可能要值。

請注意,將值從絕對ISO8601格式更改爲本地ISO8601格式時應小心謹慎,因爲它會更改數值的含義並且經常重視其自身。

請確保它的你真的想下面的選項(並相應地調整代碼):

  • 簡單地從價值下降時間。如果數值來自不同的時區,將產生半隨機時間。
  • 總是將值移動到給定的時區並使其位於該時區的本地。
  • 總是移動值與當前時區,並使它局部於當前時區

或者,也許你正在尋找其它的什麼東西。

+0

沒有親愛的我試過這個,但我得到20120629T0000,這是一個錯誤的日期。我需要20120628T1430或20120628T0230 –

+0

@Ramesh,「錯誤的日期」不是一個好的解釋,尤其是如果你提供2個不同的值作爲「正確的」。請閱讀並評論我的答案「......以下選項,你真的想要」。 –

相關問題