任何想法? 我不能拿出任何。如何将整数日期转换为格式化日期字符串(即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