Другой формат даты в javascript в IE 9 и последних версиях IE

Я получаю указанную ниже строку при работе с IE с разными версиями.

В последних версиях IE: «Mon Nov 10 2014 00:00:00 GMT + 0530 (индийское стандартное время)»

В IE версии 9: «Пн, 10 ноября, 00:00:00 UTC + 0530 2014».

Я передаю значение IE Последние версии в серверную часть, а затем конвертирую в объект datetime С #, как показано ниже

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

но когда я получаю старое значение браузера, я получаю ошибку. Итак, как я могу преобразовать старое значение браузера и последнее значение браузера в объект datetime в С #.


person Pradeep Kumar Das    schedule 24.12.2015    source источник
comment
Как получить эту строку? Как передать значение?   -  person Sami Kuhmonen    schedule 24.12.2015


Ответы (2)


Поскольку ваш startdate.Substring(0, 24) возвращает Mon Nov 10 00:00:00 UTC+ для вашей версии IE9, очевидно, что ваш формат и строка не совпадают.

Но я бы проанализировал DateTimeOffset вместо DateTime для обоих примеров, поскольку у вас есть значение UTC Offset.

string s = "Mon Nov 10 00:00:00 UTC+0530 2014";
DateTimeOffset dto;
if (DateTimeOffset.TryParseExact(s, "ddd MMM dd HH:mm:ss 'UTC'zzz yyyy", 
                                 CultureInfo.InvariantCulture,
                                 DateTimeStyles.None, out dto))
{

}

Теперь у вас DateTimeOffset как 10.11.2014 00:00:00 +05:30.

Или вы можете использовать эту перегрузку, которая принимает формат в виде массива строк, поэтому вы может предоставить оба формата и проанализировать вашу строку с совпадающей.

person Soner Gönül    schedule 24.12.2015

У меня есть решение, я передаю год из java-скрипта, и при внутренней проверке этот год совпадает с последними 4 символами startdate, если он совпадает, затем добавьте значение года к 1-м 10-м символам startdate. затем продолжайте с оставшимся кодом.

var CheckYearinlast=startdate.Substring(startdate.Length-4);
                if (year.Equals(CheckYearinlast))
                {
                    startdate = startdate.Substring(0, 10) + " " + CheckYearinlast + " 00:00:00";
                }

                var Startdatetime = DateTime.ParseExact(startdate.Substring(0, 24), "ddd MMM d yyyy HH:mm:ss", CultureInfo.InvariantCulture);
person Pradeep Kumar Das    schedule 29.12.2015