任何想法? 我不能拿出任何。如何將整數日期轉換爲格式化日期字符串(即2012009至2009年2月1日)
我有日期,我從csv文件加載在列表和它們保存爲所有的整數,或者更確切地說,整數的字符串(即2009年1月1日= 1012009)如何
任何想法將1012009變成1/01/2009?
謝謝!
任何想法? 我不能拿出任何。如何將整數日期轉換爲格式化日期字符串(即2012009至2009年2月1日)
我有日期,我從csv文件加載在列表和它們保存爲所有的整數,或者更確切地說,整數的字符串(即2009年1月1日= 1012009)如何
任何想法將1012009變成1/01/2009?
謝謝!
int date = 1012009;
var month = date/1000000;
var day = (date/10000) % 100;
var year = date % 10000;
var formatted = new DateTime(year, month, day).ToString();
這假定月 - 日 - 年;如果數字是日 - 月 - 年,我相信您可以交換月份和日期變量以適應此情況。
如果你想定製的日期格式,你可以做這樣描述:
從csv(文本)中讀取並格式化爲不帶分隔符的日期時,我實際上不會將其視爲整數。我會直接從字符串中解析它。 – 2010-08-24 05:49:04
由於日期存儲爲一個字符串,您可能需要使用ParseExact
:
DateTime date = DateTime.ParseExact("28012009", "dMMyyyy", null);
ParseExact
如果格式不匹配,將會引發異常。它還有其他重載,如果需要,您可以指定多個可能的格式。請注意,這裏provider
是null
,它使用當前的文化。
根據不同的風格,您可能需要使用TryParseExact
。
讓10102009成爲dateInt。
string dateString = dateInt.ToString();
int l = dateString.Length;
dateString = dateString.Insert(l-3,"/");
dateString = dateString.Insert(l-6,"/");
你現在應該有2009年1月1日在dateString ..你也可以嘗試ParseExact功能..
注重前導零。 – thelost 2010-08-24 05:17:10
那是'Mddyyyy'還是'dMMyyyy'? 1月1日並沒有多大幫助':'' – Kobi 2010-08-24 05:17:33
格式是MMddyyyy和Mddyyyy。我將其他答案標記爲答案,因爲它對我最有效。這一個也可以工作。 – waskelton4 2010-08-25 15:01:18