2012-01-12 1 views
1

Я открываю файл History.plist браузера Safari с помощью блокнота, и я нахожу, что закодированное datetime URL-адреса доступа составляет 9 цифр + DOT + одна цифра. Я не могу понять, как интерпретировать его в подходящем формате даты и времени, я хочу изменить его на текущую дату.Преобразование double в datetime всегда сбой

код

DateTime dt=DateTime.FromOADate(348020617.0); 

ответ

2

Если это временная метка 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 pm EST

3

Из статьи: MSDN

DateTime.FromOADate (д); Где d должно быть значением от отрицательного 657435.0 через положительный 2958466.0.

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); 
     } 
Смежные вопросы