有没有人可以告诉我这个'1110620'是什么类型的日期格式?我怎样才能将其转换为'yyyy-MM-dd'格式。任何帮助都非常感谢。谢谢!
答案 0 :(得分:2)
DateTime d;
if (DateTime.TryParse("1110620", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
string r = d.ToString("yyyy-MM-dd");
else
throw new Exception();
答案 1 :(得分: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)));
答案 2 :(得分:0)
以上格式似乎是 - yyyMMdd。你可以编写c#方法来相应地转换它。有关详细信息,请参阅MSDN。
答案 3 :(得分:0)
我的猜测是前三位是两位数年份的延伸。其中100对应于2000年。
因此,格式最初是yyMMdd
,或者可能是(year-1900)*10000+month*100+day
,它通过为1
添加前缀,在逻辑上延伸到2000年后的数字。这也保留了整数排序顺序。
所以要解析它你可以:
day=input%100;
month=input/100%100;
year=input/10000+1900;
使用此公式1110620
对应2011-06-20
但除非你解释你的例子应该是什么意思,否则这只是推测。
我的第一个猜测是它可能是某个日期以来的几天,但这会使原点在公元前1000年左右,这是不可能的。