Преобразование double в datetime всегда завершается неудачей - PullRequest
1 голос
/ 12 января 2012

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

код

DateTime dt=DateTime.FromOADate(348020617.0);

Ответы [ 3 ]

3 голосов
/ 12 января 2012

С MSDN Артикул:

DateTime.FromOADate (д); Где d должно быть значением между отрицательным От 657435,0 до 2958466,0.

2 голосов
/ 12 января 2012

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

0 голосов
/ 05 июня 2015

Вы можете сделать метод, как показано ниже:
Сначала сохраните дату в строке, после чего используйте этот метод (он рассчитан на восьмую длину даты), но ее можно увеличить или уменьшить.

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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...