有没有人可以告诉我这个'1110620'是什么类型的日期格式?我怎样才能把它转换成'yyyy-MM-dd'格式。任何帮助,高度赞赏。谢谢!c#中转换的日期格式
回答
上述格式似乎是 - yyyMMdd。你可以编写c#方法来相应地转换它。有关更多详细信息,请参阅MSDN。
这应该工作:
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)));
@亨克:你有没有其他的非玩笑想法代表什么格式? – abatishchev
@HenkHolterman:我认为OP的日期有误......但他确认这是正确的。我不知道我的回答是OP在寻找什么......真的,不知道。 :) – Marco
@abatishchev:如果是Julian日数,则意味着1673年9月17日。 –
DateTime d;
if (DateTime.TryParse("1110620", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
string r = d.ToString("yyyy-MM-dd");
else
throw new Exception();
好的解决方案,检查可能的错误。 Upvoted! :) – Marco
但为什么InvariantCulture的假设?你应该循环所有的文化。 –
@亨克:什么?我相信没有哪种文化能够解析它,如果不变则不会。 – abatishchev
我的猜测是,第3位是两位数的延伸年。其中100对应于2000年。
因此格式本来是yyMMdd
和或或许是(year-1900)*10000+month*100+day
,它在逻辑上延伸到2000年后的前几年,前缀为1
。这也保留了整数排序顺序。
因此,要分析它你可以:
day=input%100;
month=input/100%100;
year=input/10000+1900;
有了这个公式1110620
相当于2011-06-20
但是,除非你能解释一下你的例子应该是什么意思,这只是猜测。
我的第一个猜测是,这可能是因为某个日期天,但这将放在原点周围1000BC,这是不可能的。
- 1. 转换格式的日期为DateTime C#
- 2. 转换日期格式为C#
- 3. 转换日期到MySQL日期格式
- 4. 转换日期格式/加密日期
- 5. 转换日期格式SQL
- 6. 转换日期格式
- 7. 转换日期格式
- 8. Metl - 转换日期格式
- 9. XSLT转换日期格式
- 10. 转换日期格式
- 11. 日期格式转换javascript
- 12. R:日期格式转换
- 13. 日期格式转换Ruby
- 14. 转换日期格式
- 15. CMake转换日期格式
- 16. 日期格式转换javascript
- 17. 转换日期格式
- 18. 转换日期格式
- 19. Java日期格式转换
- 20. javascript日期格式转换
- 21. javascript日期格式转换
- 22. 转换日期格式
- 23. 转换日期格式
- 24. iOS日期格式转换?
- 25. 转换日期格式Perl
- 26. 转换此日期格式
- 27. 转换日期格式
- 28. 转换日期格式
- 29. 转换日期格式
- 30. 转换日期格式
显然这是六月二十日,公元111 –
你确定这不是'110620'吗? – Marco
我确定它是'1110620' –