Jak*_*son 1 .net c# julian-date
我在电子表格中有一个单元格,它是Excel中的日期对象,但是当它出自C1的xls类时,变成了一个双精度(类似于2009年1月7日的39820.0).我读到这是朱利安的日期格式.有人能告诉我如何将其解析回C#中的DateTime吗?
更新:看起来我可能没有朱利安日期,而是自1899年12月30日以来的天数.
我认为Excel只是使用标准的OLE自动化DATE类型,可以使用该DateTime.FromOADate方法进行转换.
这段代码,
using System;
namespace DateFromDouble
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(DateTime.FromOADate(39820.0));
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
1/7/2009 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
System.Globalization中有一个JulianCalendar类; 以下是您将如何使用它:
JulianCalendar c = new JulianCalendar();
DateTime time = c.ToDateTime(2009, 1, 7, 0, 0, 0, 0);
Console.WriteLine(time.ToShortDateString());
Run Code Online (Sandbox Code Playgroud)
编辑:
如果它实际上是"1900"以后的几天,你可以这样做:
public static DateTime DaysSince1900(int days)
{
return new DateTime(1900, 1, 1).AddDays(days);
}
DateTime time = DaysSince1900(39820);
Console.WriteLine(time.ToShortDateString()); //will result in "1/9/2009"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16558 次 |
| 最近记录: |