我需要将DateTime转换为YYDDD格式的儒略历日期。你是怎么做到的?我看到在。net中有一个JulianCalendar类,但找不到任何如何进行转换的示例。我看过一些链接,但没有一个是有效的。
有什么建议吗?
更新我已经给出了一些日期转换为csv文件,这包括将dateTime转换为我无法更改的格式,显然在银行世界中使用。格式是YYDDD .经过谷歌搜索,它看起来像儒略历。我可能错了。我完全搞不懂这是什么格式
看起来这个格式确实是也在大型机世界中被称为朱利安日期…
http://www.google.com/search?sourceid=chrome& ie = UTF-8& q =朱利安+日期+ yyddd
var myDate = DateTime.Now;
string.Format("{0:yy}{1:D3}", myDate, myDate.DayOfYear);
EDIT -要将这样的字符串转换回日期,可以使用如下命令:
DateTime FromBizarreMainframeFormat(string julianDate) {
// TODO add validation logic, plus rules to cope with pre-2000 dates
var yy = 2000 + int.Parse(julianDate.SubString(0,2));
var ddd = int.Parse(julianDate.Substring(2));
return new DateTime(yy, 1, 1).AddDays(ddd);
}
看起来您要求的值等于(myDate.Year % 100) * 1000 + myDate.DayOfYear
。这是一个相当简单的计算。
如果你想要一个带前导零的字符串,那么你可以用(myDate.Year % 100).ToString("D2") + myDate.DayOfYear.ToString("D3")