Лучший способ конвертировать дату JavaScript в .NET date

У меня есть дата в JavaScript и ее значение приближается как

Пт Апр 01 2011 05:00:00 GMT + 0530 (стандартное время в Индии) {}

Теперь, как лучше всего конвертировать дату в .NET дату. Обратите внимание, что пользователи моей клиентской стороны могут быть во всем мире. У меня будет дата оттуда, теперь мне нужно преобразовать ее в дату .NET. вы можете мне помочь?

Ответ 1

Возможный дубликат вопроса: Дата Javascript для С# через Ajax

Если вам нужно локальное время, например, вы показываете в своем вопросе, это сделает следующее.

DateTime.ParseExact(dateString.Substring(0,24),
                              "ddd MMM d yyyy HH:mm:ss",
                              CultureInfo.InvariantCulture);

Если вы ищете время по Гринвичу, сделав dateObject.toUTCString() в Javascript в браузере, прежде чем отправлять его на сервер, сделайте это.

Ответ 2

Преобразование JavaScript в UTCString со стороны клиента:

var testDate = new Date().toUTCString();

Разберите его с кодом С# (вы можете получить дату js через вызов webservice).

DateTime date = DateTime.Parse(testDate);

Ответ 3

Вы можете преобразовать свое время в строку перед отправкой и в .net, вы должны преобразовать строку в datetime, используя один из конструкторов datetime. Datetime.net → http://msdn.microsoft.com/en-us/library/system.datetime(v=VS.90).aspx Вы также можете использовать метод DateTime.Parsehttp://msdn.microsoft.com/en-us/library/ms973825.aspx Но вы должны доставить правильную форму строки на сервер

Ответ 4

Итак, попробуйте эту простую функцию, которая преобразует ваше "двойное" представление вашей отметки времени Unix

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

Ответ 5

Развернувшись на @Naraen, дата моего javascript была в следующем формате:

Thu Jun 01 2017 04:00:00 GMT-0400 (Eastern Standard Time)

Для этого потребовалось два нижних регистра d для дня (dd) для преобразования в работу для меня на С#. См. Обновление кода @Naraen:

DateTime.ParseExact(dateString.Substring(0,24),
                          "ddd MMM dd yyyy HH:mm:ss",
                          CultureInfo.InvariantCulture);