将整数值解析为日期时间

use*_*862 21 .net c# string datetime

我将日期表示为整数20140820,我希望将其解析为日期时间,如2014.08.20.

我是否需要使用索引解析每个整数值(2014)(08)(02)还是更简单的方法?

Son*_*nül 39

如果您的CurrentCulture支持yyyyMMdd格式为标准日期和时间格式,您可以使用DateTime.Parse类似的方法;

int i = 20140820;
DateTime dt = DateTime.Parse(i.ToString());
Run Code Online (Sandbox Code Playgroud)

如果它不支持,则需要使用DateTime.ParseExactDateTime.TryParseExact方法将其解析为自定义日期和时间格式.

int i = 20140820;
DateTime dt;
if(DateTime.TryParseExact(i.ToString(), "yyyyMMdd", 
                          CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    Console.WriteLine(dt);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以格式化你DateTime.ToString()方法,如;

string formattedDateTime = dt.ToString("yyyy.MM.dd", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)


Lan*_*kin 15

最简单,最具性能的方式是:

int date = 20140820;

int d = date % 100;
int m = (date / 100) % 100;
int y = date / 10000;

var result = new DateTime(y, m, d);
Run Code Online (Sandbox Code Playgroud)