2

有没有人可以告诉我这个'1110620'是什么类型的日期格式?以及如何将其转换为“yyyy-MM-dd”格式。非常感谢任何帮助。谢谢!

4

4 回答 4

2
DateTime d;
if (DateTime.TryParse("1110620", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
    string r = d.ToString("yyyy-MM-dd");
else
    throw new Exception();
于 2011-11-29T08:22:26.620 回答
1

这应该有效:

string dt = "1110620";
DateTime dt = DateTime.ParseExact(dt, "yyyMMdd", 
                                  CultureInfo.CultureInvariant);

或者您可以尝试(不优雅但有效)

        int start = dt.Length - 4;
        DateTime d = new DateTime(
            int.Parse(dt.Substring(0, start)),
            int.Parse(dt.Substring(start, 2)),
            int.Parse(dt.Substring(2 + start, 2)));
于 2011-11-29T08:18:26.773 回答
0

我的猜测是前 3 位数字是两位数年份的延伸。其中 100 对应于 2000 年。

因此,格式最初是yyMMdd,或者可能(year-1900)*10000+month*100+day通过在1. 这也保留了整数排序顺序。

所以要解析它,你可以:

day=input%100;
month=input/100%100;
year=input/10000+1900;

与这个公式1110620对应2011-06-20

但是除非你解释你的例子应该是什么意思,否则这只是猜测。


我的第一个猜测是,它可能是某个日期之后的几天,但这会使起源在公元前 1000 年左右,这是不太可能的。

于 2011-11-29T12:31:17.597 回答
0

上面的格式好像是-yyyMMdd。您可以编写 c# 方法来相应地转换它。有关详细信息,请参阅MSDN

于 2011-11-29T08:17:38.203 回答