Преобразование.NET DateTime к JSON [дубликат]

В Python 3.x вы можете использовать декларацию nonlocalnested), чтобы сообщить Python, что вы хотите присвоить переменной count в nesting.

В Python 2.x вы просто не можете назначить count в nesting из nested. Тем не менее, вы можете обойти это, не присваивая переменной переменную, а используя изменяемый контейнер:

def nesting():
    count = [0]
    def nested():
        count[0] += 1

    for i in range(10):
        nested()
    print count[0]

Хотя для нетривиальных случаев, обычный подход Python заключается в переносе данные и функциональность в классе, а не с использованием замыканий.

236
задан Community 23 May 2017 в 00:31
поделиться

5 ответов

Возвращаются миллисекунды с начала эпохи. Вы можете:

var d = new Date();
d.setTime(1245398693390);
document.write(d);

О том, как отформатировать дату точно так, как вы хотите, см. Полную справку Date на http://www.w3schools.com/jsref/jsref_obj_date. asp

Вы можете удалить нецифровые числа, проанализировав целое число (, как предлагается здесь ):

var date = new Date(parseInt(jsonDate.substr(6)));

или применив следующее регулярное выражение (из Tominator в комментариях):

var jsonDate = jqueryCall();  // returns "/Date(1245398693390)/"; 
var re = /-?\d+/; 
var m = re.exec(jsonDate); 
var d = new Date(parseInt(m[0]));
245
ответ дан 23 November 2019 в 03:26
поделиться

Я использую этот метод некоторое время:

using System;

public static class ExtensionMethods {
  // returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)
  public static double UnixTicks(this DateTime dt)
  {
    DateTime d1 = new DateTime(1970, 1, 1);
    DateTime d2 = dt.ToUniversalTime();
    TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
    return ts.TotalMilliseconds;
  }
}

Предполагая, что вы разрабатываете против .NET 3.5, это прямое копирование / вставка. В противном случае вы можете перенести его.

Вы можете инкапсулировать это в объект JSON или просто записать его в поток ответа.

На стороне Javascript / JSON вы конвертируете это в дату, просто передавая галочки в новый объект Date:

jQuery.ajax({
  ...
  success: function(msg) {
    var d = new Date(msg);
  }
}
77
ответ дан 23 November 2019 в 03:26
поделиться

Вы можете попробовать стороннюю библиотеку, например json.net На сайте проекта есть документация. Там сказано, что для этого требуется .net 3.5.

В противном случае есть еще один, называемый Nii.json, который, как мне кажется, является портом с java. Я нашел ссылку на это в этом блоге

6
ответ дан 23 November 2019 в 03:26
поделиться

Если у вас возникли проблемы с получением информации о времени, вы можете попробовать что-нибудь вроде это:

    d.date = d.date.replace('/Date(', '');
    d.date = d.date.replace(')/', '');  
    var expDate = new Date(parseInt(d.date));
16
ответ дан 23 November 2019 в 03:26
поделиться

Если передать DateTime из кода .Net в код JavaScript, C #:

DateTime net_datetime = DateTime.Now;

javascript обрабатывает его как строку, например "/ Date (1245398693390) /" :

Вы можете преобразовать его как fllowing:

// convert the string to date correctly
var d = eval(net_datetime.slice(1, -1))

или:

// convert the string to date correctly
var d = eval("/Date(1245398693390)/".slice(1, -1))
17
ответ дан 23 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: