Лучший способ конвертировать дату 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.Parse → http://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);