【问题标题】:local time for datetime field日期时间字段的本地时间
【发布时间】:2019-01-18 18:37:15
【问题描述】:

我有一个模型,它有一个日期时间字段

class MyModel(models.Model):

...
created_at = models.DatetimeField(auto_now_add=True)

时区配置的settings.py:

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

我有两个问题:

首先,当我想在 admin 中显示 created_at 时,如何显示本地时间

第二,当我在序列化程序中使用它时:

class MySerializer(ModelSerializer):
    class Meta:
        model = MyModel
        fields = (..., 'created_at',)

注意:我的应用拥有来自不同国家/地区的用户。

我实际上想要来自客户端的用户时区

【问题讨论】:

    标签: python django django-rest-framework timezone


    【解决方案1】:

    实际上,我在 django 或 django rest 中找不到用户的本地时区。我只是在 db 上以 UTC 格式存储日期时间,然后在前端将其转换为本地时区。我的前端是 Angular 5.0。然后我可以使用 date 管道进行此转换。

    根据区域设置规则格式化日期值。

    {{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}
    

    示例:

    {{ created_at | date: 'short' }}
    

    输出:8/5/18,下午 3:15

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 2017-08-08
      • 2023-03-26
      • 2020-12-16
      相关资源
      最近更新 更多