Формат DateTime с REST и JSON - PullRequest
       0

Формат DateTime с REST и JSON

1 голос
/ 24 декабря 2011

У меня огромная проблема с попыткой выяснить ответ json от конечной точки REST, из которой я получаю информацию.

Возвращаемая дата выглядит следующим образом: 1319068800000

если я попытаюсь преобразовать это значение следующим образом:

DateTime currentServerTime = DateTime.FromFileTimeUtc(1319068800000);

я получу этот вывод: 1/2/1601 12:38:26 PM ... явно неправильно: (

RESTКонечная точка, которую я использую, имеет замечательный HTML-дисплей ответа json, и их формат с таким же значением выглядит следующим образом: 2011/10/20 00:00:00 UTC

Может кто-нибудь пролить свет наэто для меня? Я пытаюсь обновить дату через этот REST API, и когда я отправляю дату, используя этот код

DateTime.Now.ToFileTimeUtc().ToString();

, я получаю этот результат 129691518811163201, и когда я отправляю это в API, он бомбитговоря, у меня есть действительная дата. Спасибо!

Ответы [ 3 ]

4 голосов
/ 24 декабря 2011

Оба @Bill и @Christofer правы. Вам все еще нужно преобразовать время Unix в DateTime. Вот небольшая функция, которая делает это: Преобразование метки времени Unix в .NET DateTime

Код цитируется с сайта (Симона Кьяретта):

static DateTime ConvertFromUnixTimestamp(double timestamp)
{
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return origin.AddSeconds(timestamp);
}


static double ConvertToUnixTimestamp(DateTime date)
{
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    TimeSpan diff = date - origin;
    return Math.Floor(diff.TotalSeconds);
}
3 голосов
/ 24 декабря 2011

Вы можете разделить возвращаемое число на 1000, прежде чем преобразовать его в DateTime.Кажется, он возвращается в миллисекундах с эпохи Unix.

3 голосов
/ 24 декабря 2011

Похоже на количество миллисекунд с 1 января 1970 года в 12:00 по Гринвичу. Это внутренний формат метки времени, который обычно используется в Java.

user=> (java.util.Date. 1319068800000)
Date Wed Oct 19 20:00:00 EDT 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...