将整数值解析为日期时间

我的日期表示为整数,如20140820 ,我想将其解析为日期时间,如2014.08.20。

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

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

 int i = 20140820; DateTime dt = DateTime.Parse(i.ToString()); 

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

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

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

 string formattedDateTime = dt.ToString("yyyy.MM.dd", CultureInfo.InvariantCulture); 

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

 int date = 20140820; int d = date % 100; int m = (date / 100) % 100; int y = date / 10000; var result = new DateTime(y, m, d); 

试试这个 :-

 string time = "20140820"; DateTime theTime= DateTime.ParseExact(time, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None); 

要么

 string str = "20140820"; string[] format = {"yyyyMMdd"}; DateTime date; DateTime.TryParseExact(str, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out date)) 

现在date变量将需要converted date of string '20140820'