有沒有人可以告訴我這個'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' –