LINUX.ORG.RU

как лучше всего дату + время передавать через строку?


0

1

Вопрос возник относительно питона, но думаю, при его тормознутости по умолчанию этот вопрос не так важен. А важно другое.

Пусть есть язык программирования (быстрый). Как лучше всего серилизовывать datetime? Точнее как быстрее сериализовать/десериализовать?

★★★★
Ответ на: комментарий от schizoid

help(datetime.datetime)

datetime.isoformat([sep])

Return a string representing the date and time in ISO 8601 format, YYYY-MM-DDTHH:MM:SS.mmmmmm or, if microsecond is 0, YYYY-MM-DDTHH:MM:SS

schizoid ★★★
()

namezys

Пусть есть язык программирования (быстрый). Как лучше всего серилизовывать datetime? Точнее как быстрее сериализовать/десериализовать?

ИМХО

date +%s
date -d@TIMESTAMP
я надеюсь, к 2038у году размер данных будет больше 32 бита.

drBatty ★★
()

unix time же, ну.

arsi ★★★★★
()
Ответ на: комментарий от drBatty

а что, timestamp так просто преобразовать к дате с точностью до секунды?

Надо учесть високосные годы и добавочные секунды, которые вроде как вообще массивом идут (в какие годы и когда добавлялась секунда для корректировки астрономического времени)

namezys ★★★★
() автор топика
Ответ на: комментарий от namezys

может и сложно. А может и вообще не нужно. Откуда ты знаешь внутреннее представление даты? В любом случае, есть стандартная функция, а несколько цифр (ASCIIZ) - это самый переносимый и не убиваемый формат. И места немного занимает.

drBatty ★★
()

Вполне читабельный и сортабельный числовой формат для всевозможных недологов, сериализаций и текстовых сортировок: YYYYMMDDhhmmss[xxx], ничего лишнего. Компактность при этом, естественно, вторична.

blexey ★★★★★
()

год-месяц-день-часы-минуты-секунды. А все потому, что так сравнивать проще.

S-Mage ★★
()

Исключительно в виде числа секунд (или миллисекунд) с 1 января 1970 года по гринвичу.

Впрочем, зависит от того что ты делать собираешься с этой датой. если какиен-ть операции (сравнение, изменение таймзоны, вычисление разности и др) то однозначно таймстампом.

а если просто тупо передать чтобы потом обратно забрать или показать - то любая строка сгодится.

mmarkk
()
Ответ на: комментарий от namezys

Тут есть всякие приколы с временной зоной. Поэтому иногда надо передавать таймстамп, на другой сотороне преобразовать в массив типа год месяц и тд в соответствие с нужной зоной, которая може отличаться от той что была на отправителе. А прикол с временной зоной заключается в том что может существовать два разных времени описываемых твоим массивом – до перевода часов и после. И более того. Задача определить точный таймстамп начала дня например не такая тривиальная. Поэтому, подумай хорошо, надо ли тебе производить вообще эти вычисления.

Обычно делают так: везде используется таймстамп, а преобразоывавается в нужный тебе массив только при вычислениях или при показе на экран.

mmarkk
()
Ответ на: комментарий от mmarkk

мне как раз надо передать без учета изменения таймзоны и другой ммелочи

Проблемы передачи и преобразование времени я знаю хорошо

namezys ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.