【发布时间】:2015-06-05 22:27:11
【问题描述】:
我使用记事本打开 Safari 浏览器的 History.plist 文件,我发现访问 URL 的编码日期时间是 9 位 + DOT + 一位。我不知道如何将其解释为合适的日期时间格式,我希望将其更改为当前日期。
代码
DateTime dt=DateTime.FromOADate(348020617.0);
【问题讨论】:
我使用记事本打开 Safari 浏览器的 History.plist 文件,我发现访问 URL 的编码日期时间是 9 位 + DOT + 一位。我不知道如何将其解释为合适的日期时间格式,我希望将其更改为当前日期。
代码
DateTime dt=DateTime.FromOADate(348020617.0);
【问题讨论】:
来自MSDN文章:
日期时间.FromOADate(d);其中
d必须是介于负数之间的值 657435.0 到正 2958466.0。
【讨论】:
如果这是一个 UNIX 时间戳,那么您可以使用此函数进行转换(借用自 http://codeclimber.net.nz/archive/2007/07/10/convert-a-unix-timestamp-to-a-.net-datetime.aspx)
static DateTime ConvertFromUnixTimestamp(double timestamp)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return origin.AddSeconds(timestamp);
}
对于它的价值,您提到的时间戳 (348020617.0) 转换为 01/10/81 @ 6:23:37pm EST
【讨论】:
您可以制作如下方法:
先将日期存储在字符串中,然后使用此方法(日期长度为八),但可以增加或减少。
private DateTime ConvertToDate(string date)
{
if (date.Length !=8)
{
return ConvertToDate("");
}
int iYear; int.TryParse(date.Substring(0, 4), out iYear);
int iMonth; int.TryParse(date.Substring(4, 2), out iMonth);
int iDay; int.TryParse(date.Substring(6, 2), out iDay);
return new DateTime(iYear, iMonth, iDay);
}
【讨论】: