Django中意外的日期时间格式

时间:2018-12-04 10:00:46

标签: python django datetime

我有一个django项目,其中我的一个模型有一个名为start_time的dateField。 在我的views.py中,我创建了一个DetailView,然后尝试检索时间戳,例如:

session

在我的Raspberry Pi上,它可以提供预期的结果。

df['new_session'] = (cond1|cond2).astype(int).cumsum()
print(df)

     delta_t                  session    new_session
0 11 days 18:59:13.230000        1            1
1  1 days 02:22:13.230000        1            2
2  0 days 18:59:13.230000        1            3
3  1 days 18:59:13.230000        7            4
4  0 days 07:59:13.230000        7            5
5  0 days 04:59:13.230000        7            5
6  2 days 18:59:13.230000        7            6

但是在我的Ubuntu 18计算机上,它提供了:

s = self.object.start_time.strftime('%d-%b-%Y')

如何让我的Ubuntu计算机获得与Raspberry Pi相同的(预期)结果?

它们都运行Django 2.1.3。

2 个答案:

答案 0 :(得分:1)

%b是与语言环境相关的(请参阅相关的strftime doc)。

检查两台计算机上的语言环境;他们可能至少有些微的不同。在任何情况下,确保两者都使用相同的语言环境将是理想的选择,但是特别是对于日期,您可以考虑使用与语言环境无关的数值。

答案 1 :(得分:0)

最终解决我的问题的方法是,在提供意外结果的计算机上添加

export LC_ALL=en_US.UTF-8

~/.bashrc。 然后打开一个新终端或致电source ~/.bashrc

另一种选择是

import locale
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")

在应用的views.py中。

您可以通过从终端调用locale来检查当前的语言环境设置。在我的情况下,LC_ALL为空。