我使用记事本打开Safari浏览器的History.plist文件,我发现被访问的URL的编码日期时间是9位+ DOT +一位数。我无法弄清楚如何将其解释为适合的日期时间格式,我希望将其更改为当前日期。双日期时间转换总是失败
代码
DateTime dt=DateTime.FromOADate(348020617.0);
我使用记事本打开Safari浏览器的History.plist文件,我发现被访问的URL的编码日期时间是9位+ DOT +一位数。我无法弄清楚如何将其解释为适合的日期时间格式,我希望将其更改为当前日期。双日期时间转换总是失败
代码
DateTime dt=DateTime.FromOADate(348020617.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分37秒EST
从MSDN文章:
DateTime.FromOADate(d);其中
d
必须是负值 657435.0至正值2958466.0之间的值。
你可以像下面的方法:
第一店日期字符串,使用这种方法(它是迄今为止长度为八),但它可以增加或减少之后。
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);
}