Вы не указываете дату при создании объекта jj
datetime, поэтому используется дата по умолчанию 1900-01-01. Часовые пояса не являются фиксированными объектами; со временем они меняются, и часовой пояс США / Центрального региона использовал другое смещение еще в 1900 году.
Как минимум, используйте недавнюю дату, например, сегодня , например:
# use today's date, with the time from jj, and a given timezone.
datetime.datetime.combine(datetime.date.today(), jj.time(), tzinfo=tzz)
Если вам нужно только время , тогда не создать datetime
объекты для их хранения; модуль datetime
имеет выделенный объект time()
. Я бы также не использовал strftime()
для создания объектов из литералов. Просто используйте конструктор для передачи целых чисел:
jj = datetime.time(10, 0, 0) # or just .time(10)
Другие хорошие правила: Если вам приходится иметь дело с датами с часовыми поясами, попробуйте переместить их в datetime
объектов в UTC в тот момент, когда ваш код получает или загружает их. Если у вас есть только время дня, но вам все еще нужна поддержка часового пояса, прикрепите их к сегодняшней дате, чтобы вы получили правильный часовой пояс. Снова конвертируйте в строки как можно позже.
Едва ли уверенный, какие структуры Вы имели в виду, но говорите, у Вас был текстовый файл как следующее:
--> cat blah.txt foo bar baz 1 2 3 4 5 aa bb cc dd ee
Вы могли преобразовать его непосредственно в список списков в схеме с помощью sed:
--> echo "(define mylist '("`sed -e 's/\(.*\)/(\1)/' blah.txt`"))" > foo.txt
который затем производит следующий файл:
--> cat foo.txt (define mylist '((foo bar baz) (1 2 3 4 5) (aa bb cc dd ee)))
И теперь все, что необходимо сделать, загрузить файл в схему:
(load "foo.txt")
И можно получить доступ к структуре через 'mylist' переменную.
Походит на файл CSV с вкладками вместо запятых. При использовании Схемы PLT (DrScheme/mzscheme) neil's csv, библиотека, вероятно, что Вы хотите.
Вот то, как загрузить его удаленно:
(require (planet neil/csv:1:2/csv))
По крайней мере, это - то, что говорятся инструкции. На моем немного oodate DrScheme, это - то, что работало:
(require (planet "csv.ss" ("neil" "csv.plt" 1 (= 1))))