Django时间Field与datetime与time解读

本文围绕Django和Python时间模块展开。介绍了Django的DateTimeField、DateField和TimeField,包括存储内容、常用参数和默认值,还提及了Django的时区时间。同时阐述了Python的datetime模块和time模块,涵盖常用类、方法及相关功能,如时间转换、差异比较等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django相关Field

DateTimeField 和 DateField 和 TimeField,存储的内容分别对应着 datetime(), date(), time()三个对象。

常用参数:auto_now true:保存时每次更新, auto_now_add true:只创建时更新

自动添加的默认值:

  •  TimeField: datetime.datetime.now().time()
  •  DateField: datetime.date.today()
  •  DateTimeField: timezone.now()

django默认带了时区时间:

关系:

  •  datetime.datetime.now()
    • 返回 naive time(不带时区)
  •  datetime.datetime.utcnow()
    • 返回 naive time(不带时区),为UTC时间
  •  timezone.now():
    • USE_TZ=True:UTC时间(active time);
    • USE_TZ=False:与datetime.datetime.now() 完全相同 (naive time)

datetime模块

常用类:

object
  timedelta # 主要用于计算时间跨度
  tzinfo # 时区相关
  time # 只关注时间
  date # 只关注日期
    datetime # 同时有时间和日期,继承的date

常用方法:

  •  datetime.datetime.now() 获得当前时间datetime.datetime 实例。底层调用的time模块获取struct_time进行格式化
  •  now.date()、now.time() 返回date、time对象

返回带时区时间:

  •  对应的对象构造:
  •  datetime.date(year, month=None, day=None),返回date对象
  •  datetime.datetime(year, month=None, day=None, hour=0, minute=0, second=0, microsecond=0, tzinfo=None) 返回datetime对象
  •  datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None),返回time对象
  •  datetime.timedelta 比较两个datetime对象之间的差异
  •  两个datetime对象直接相减能得到timedelta对象,datetime加减一个timedelta对象还是datetime对象
  •  datetime.datetime.strptime 字符串转换成datetime类型时间, 底层调用 time.strftime()
  •  datetime.datetime.strftime datetime类型转换成字符串,封装方法返回datetime对象
  •  datetime.datetime.timetuple() 返回struct_time描述

time模块:

  1.  Generic Operating System Services:提供的功能是更加接近于操作系统层面的,围绕Unix Timestamp 进行。
  2.  该模块主要包括一个类 struct_time(通过 gmtime(), localtime(), strptime() 返回),另外其他几个函数及相关常量。在该模块中的大多数函数是调用了所在平台C library的同名函数, 注:有些函数是平台相关的,可能会在不同的平台有不同的效果。
  3.  纪元开始:
  1.  所以其所能表述的日期范围被限定在 1970 - 2038之间。 

  参考:https://zh.wikipedia.org/wiki/2038%E5%B9%B4%E9%97%AE%E9%A2%98

常用方法:

  •  time.time(): 从纪元到现在经过的总秒数:返回浮点数
  •  time.gmtime(secs) -> UTC, time.localtime(secs)
  •  time.strptime 字符串转换成 struct_time
  •  time.strftime struct_time转换成字符串
  •  more: https://docs.python.org/3.8/library/time.html#module-time
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值