2014-05-22 187 views
-1

這裏我想將日期轉換爲使用tostring的字符串,但是當我將其轉換回來時(字符串轉換爲日期時間),格式不同。如何將字符串轉換爲datetime(datetime)格式相同?

static void Main(string[] args) 
    { 
     string cc = "2014/12/2"; 
     DateTime dt = DateTime.Parse(cc); 
     Console.WriteLine(dt); 
     Console.ReadLine(); 
    } 

預期輸出: 2014年12月2日 但我得到: 2014年12月2日

+0

有什麼不對當前的代碼中使用日期模式? –

+0

它顯示12/2/2014,但我想在2014/12/2 – stpdevi

+1

日期以默認格式顯示,除非您明確使用tostring格式化它。許多答案是正確的,但你說這不是你想要的。要麼你的問題很不清楚,要麼你不明白你問的是什麼。 –

回答

1
string DateString = "06/20/1990"; 
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime dateVal = DateTime.ParseExact(DateString, "yyyy-MM-dd", culture); 

這將是你的願望輸出

udpated

string DateString = "20/06/1990";; 
       IFormatProvider culture = new CultureInfo("en-US", true); 
       DateTime dt = DateTime.ParseExact(DateString,"dd/mm/yyyy",culture); 
       dt.ToString("yyyy-MM-dd"); 
+0

嗨它顯示錯誤:字符串未被識別爲有效的日期時間。 – stpdevi

+0

@stpdevi你在傳遞什麼? –

+0

沒有任何我已經執行的代碼,因爲它是,但它顯示以上錯誤 – stpdevi

1

呼叫ToString所提供的格式,當您轉換DateTime實例回string

Console.WriteLine(dt.ToString(@"yyyy/M/d"); 
+0

sry我想反向轉換爲datetime格式如下yyyy/M/dd – stpdevi

+0

I想要使用日期時間不tostring轉換 – stpdevi

1

試試這個

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
           CultureInfo.InvariantCulture); 
dt.ToString("yyyyMMdd"); 
1

使用本:

string cc = "2014/12/2"; 
    DateTime dt = DateTime.Parse(cc); 
    string str = dt.ToString("yyyy/M/dd"); // 2014/12/02 as you wanted 
    Console.WriteLine(str); 
    Console.ReadLine(); 
1

可以使用

string formattedDate= dt.ToString("yyyy/M/d"); 

對於反向您可以使用

DateTime newDate = DateTime.ParseExact("2014/05/22", "yyyy/M/d", null); 

所以,如果你期望的輸出是這樣的:2014年12月2日 你必須使用

newDate.ToString( 「YYYY/M/d」) ;

+0

sry我想反向轉換爲datetime與以下格式yyyy/M/dd – stpdevi

+0

請檢查編輯 –

+0

sry它給予12.2.2014輸出 – stpdevi

1

正如你可以閱讀hereDateTime.ToString()使用CurrentCulture來決定如何輸出(CultureInfoCurrentCulture在C提供了有關如何格式化日期,貨幣信息,日曆等,這被稱爲區域 ++)格式。

因此,如以前的答案建議的simlplest溶液,是使用的ToString()過載它接受一個格式字符串,有效地重寫CurrentCulture信息:

dt.ToString(@"yyyy/MM/dd"); 

更多關於日期時間格式可以發現here

+0

我的問題是在我的dbd數據類型是datetime所以我應該添加相同的格式而不轉換爲tostring – stpdevi

+0

@stpdevi - 在引擎蓋下,'Console.WriteLine(dt)'調用默認'dt.ToString )'。它對任何非字符串參數都這樣做。 – bavaza

1

這很簡單,你只需要顯示

string cc = "2014/12/2"; 
string datePatt = @"yyyy/MM/d"; 
DateTime dt = Convert.ToDateTime(cc); 
Console.WriteLine(dt.ToString(datePatt));