我的.odt模板文件包含一个指向日期时间字段的链接,作为模板指令。虽然char指令工作得很好,但这个指令有一个问题:它在postgresql (UTC时区)而不是UTC+7中显示时间“原样”。
我想我可以在我的.odt模板文件的指令字段中添加7个小时,但是我不知道怎么做。我试过
(o.visitdt) + relativedelta(hours=7)
其中visitdt是我的日期时间字段,但是,当然,它会给出一个错误。那么,正确的语法是什么呢?还是我应该做些其他的事情来使字段显示正确?
提前谢谢。
发布于 2017-08-01 09:40:39
我花了一天的时间,试着拿起这个问题的钥匙,正如我发现的,它可以通过模板指令来完成。正如在are wiki上所说的,唯一与时间相关的功能(它能够理解)是
时间相关函数 dec_to_time -将时间转换为hh:min表示; 时间-时间访问和转换;
时间模块中有时区设置命令,但由于一开始无法设置时区,在接受tzset()的更改之前,指令拒绝理解它,所以无法使它工作。也许只有我,但我已经决定另找出路了。
这就是了。也许这不是最好的决定,但它有效,所以我将使用这个方案,直到我找到更好的东西。
我将我的日期时间字段划分为三个部分:
time.strftime("%d.%m.%Y", time.strptime(str(o.visitdt), "%Y-%m-%d %H:%M:%S"))
是我的约会对象,好吧,
(time.strptime(str(o.visitdt), "%Y-%m-%d %H:%M:%S"))[3]+07
这是几个小时的一部分,我把它从时间元组中拉出来,增加了7(我的时区),
time.strftime("%M", time.strptime(str(o.visitdt), "%Y-%m-%d %H:%M:%S"))
最后一部分-分钟(未受影响)。
因此,我们有我们想要的确切日期和时间(例如19.10.2017 11:00 )。
当然,如果我们将小时设置为<7,它将无法工作,但由于它超出了我的可用时间间隔(8-17),它将作为临时决定。
https://stackoverflow.com/questions/45343942
复制相似问题