我有一个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。
答案 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
为空。