"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como trocar objetos de data e hora entre Python e JavaScript usando JSON?

Como trocar objetos de data e hora entre Python e JavaScript usando JSON?

Publicado em 2024-11-09
Navegar:415

How to Exchange Datetime Objects Between Python and JavaScript Using JSON?

JSON datetime entre Python e JavaScript

A troca de objetos datetime entre Python e JavaScript usando JSON pode ser desafiadora devido às diferenças em suas respectivas datas e formatos de hora. Para resolver isso, podemos implementar manipuladores de serialização e desserialização JSON personalizados.

Em Python, você pode definir uma função de manipulador de serialização usando o parâmetro padrão na função json.dumps. Este manipulador será chamado sempre que um objeto datetime for encontrado durante a serialização. O trecho de código a seguir demonstra como criar um manipulador para objetos de data e hora que os converte para o formato ISO 8601:

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json.dumps(datetime.datetime.now(), default=date_handler)

Isso gerará o objeto datetime como uma string no formato ISO 8601:

"2010-04-20T20:08:21.634121"

Em JavaScript, você pode usar um manipulador de desserialização personalizado para converter a string ISO 8601 recebida de volta em um objeto de data e hora. Uma função de manipulador de desserialização abrangente pode ser semelhante a:

function handler(obj) {
    if (typeof obj === 'string') {
        if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(obj)) {
            // ISO 8601 Date string
            return new Date(obj);
        }
    }

    return obj;
}

Ao usar esses manipuladores personalizados, você pode trocar perfeitamente objetos de data e hora entre Python e JavaScript usando JSON, garantindo a compatibilidade entre as duas plataformas.

Declaração de lançamento Este artigo foi reimpresso em: 1729422917 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3