有没有人可以告诉我这个'1110620'是什么类型的日期格式?以及如何将其转换为“yyyy-MM-dd”格式。非常感谢任何帮助。谢谢!
问问题
252 次
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 回答