将整数值解析为日期时间

时间:2014-08-20 08:00:57

标签: c# .net string datetime

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

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

3 个答案:

答案 0 :(得分:37)

如果您的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);

答案 1 :(得分:12)

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

int date = 20140820;

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

var result = new DateTime(y, m, d);

答案 2 :(得分:0)

试试这个: -

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

OR

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'