zoukankan      html  css  js  c++  java
  • django 获取系统当前时间 和linux 系统当前时间不一致 问题处理。

    问题场景:

      在django admin models 实体对象添加一个属性最后修改时间,用户在添加、修改是系统自动修改操作时间。

      UpdateTime自动获取系统时间、并且自动修改。 
    代码设置如下。

    class User(models.Model):
     Name = models.ForeignKey(HotTag,verbose_name='姓名'))
     Desc = models.CharField('简介', blank=True, max_length=50)
     CreateTime = models.DateTimeField('添加时间', default=datetime.now())
     UpdateTime = models.DateTimeField('修改时间',auto_now=True,default=datetime.now())

    上面代码设置是没有问题的。
    当放到linux 完全上去跑是,发现UpdateTime和CreateTime(数据库字段)时间和系统时间不一致。
    当修改记录是UpdateTime也能自动修改时间就,当是时间还是和系统时间不一致。


    问题分析:
    django 时区和当前linux系统时间时区不一致。

    原来django settings.py 中的配置如下:

    # system time zone.
    TIME_ZONE = 'America/Chicago'

      

    'America/Chicago' :是美国芝加哥时间

    处理方式:

    如果把他修改为:

    # system time zone.
    #TIME_ZONE = 'America/Chicago'
    TIME_ZONE = ‘Asia/Shanghai’

      

      Asia/Shanghai (上海时间) 
         Asia/Beijing (北京时间) 
      两时区是一致的。

    重启django 项目 在登陆后台网站修改用户数据发现这时时间是一致的。

     附加内容:

    DateField:日期字段,admin 用一个文本框 <input type=”text”> 来表示该字段数据(附带一个 JavaScript 日历和一个”Today”快捷按键。有下列额外的可选参数:
    auto_now:当对象被保存时,自动将该字段的值设置为当前时间.通常用于表示 “last-modified” 时间戳;
    auto_now_add:当对象首次被创建时,自动将该字段的值设置为当前时间.通常用于表示对象创建时间。

      GMT 就是格林威治标准时间的英文缩写(Greenwich Mean Time 格林尼治标准时间),是世界标准时间.
      gmt-8 是格林威治时间+8小时,是北京时间.
  • 相关阅读:
    Tomcat报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/JFreeChartTest]]
    Md5 加密,加盐值
    ajax 分页 步骤和代码
    【每天学习一点点】numpy中的reshape中参数为-1
    smali文件语法参考
    google zxing 二维码扫描(android client分析)
    cygwin编译ffmpeg移植到android平台问题集锦
    Sequoyah 本机开发Native Development: Invalid path for NDK(路径无效) 解决方案
    优化模式--数据局部性
    程序猿,你也配吃10元的盒饭?
  • 原文地址:https://www.cnblogs.com/ymy124/p/5466084.html
Copyright © 2011-2022 走看看