Aeroo 报告错误地处理日期时间字段
Aeroo Reports wrongly handle datetime field
我的 .odt 模板文件包含一个 link 日期时间字段作为模板指令。
虽然 char 指令工作得很好,但这个有一个问题:它在 postgresql(UTC 时区)而不是 UTC+7 中显示时间 "as is"。
我想我可以通过某种方式在我的 .odt 模板文件的指令字段中添加 7 小时,但我不知道如何做。我尝试过
(o.visitdt) + relativedelta(hours=7)
其中 visitdt 是我的日期时间字段,但是,当然,它会出错。
那么,什么是正确的语法呢?还是我应该做些其他事情来使该字段正确显示?
提前致谢。
我花了一天的时间,试图找到那个问题的关键,而且,正如我发现的那样,它可以通过模板指令来完成。正如 aeroo reports wiki 上所说,
唯一与时间相关的函数(它能够理解)是
Time related functions
dec_to_time - converts time to hh:min representation;
time - time access and conversions;
时间模块中有时区设置命令,但我没能使它工作,因为我一开始无法设置时区,在使用 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)。
P.S。当然,如果我们将小时数设置为 <7 将不起作用,但由于它超出了我的可用时间间隔数组 (8-17),它可以作为一个临时决定。
我的 .odt 模板文件包含一个 link 日期时间字段作为模板指令。 虽然 char 指令工作得很好,但这个有一个问题:它在 postgresql(UTC 时区)而不是 UTC+7 中显示时间 "as is"。
我想我可以通过某种方式在我的 .odt 模板文件的指令字段中添加 7 小时,但我不知道如何做。我尝试过
(o.visitdt) + relativedelta(hours=7)
其中 visitdt 是我的日期时间字段,但是,当然,它会出错。 那么,什么是正确的语法呢?还是我应该做些其他事情来使该字段正确显示?
提前致谢。
我花了一天的时间,试图找到那个问题的关键,而且,正如我发现的那样,它可以通过模板指令来完成。正如 aeroo reports wiki 上所说, 唯一与时间相关的函数(它能够理解)是
Time related functions
dec_to_time - converts time to hh:min representation;
time - time access and conversions;
时间模块中有时区设置命令,但我没能使它工作,因为我一开始无法设置时区,在使用 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)。
P.S。当然,如果我们将小时数设置为 <7 将不起作用,但由于它超出了我的可用时间间隔数组 (8-17),它可以作为一个临时决定。