Django 时间戳及时间格式化

时间戳

没错,就是时间戳。实在不能理解为什么百度搜索“python时间戳”,出现通篇讲date、time1、datetime区别的文。我最关心的,只有“时间戳的获取、及格式化”。

1、时间戳的获取

1
2
3
import time

timestamp = time.time()

到这里就结束了?是的就是这样。如果只是记录时间戳,到这里就可以了。 But,我们需要输出格式化的时间~

2、时间的格式化

在处理时间之前,一定要setting中设置时区,划重点!!

打开setting.py,找到TIME_ZONE,设置如下:

TIME_ZONE = 'Asia/Shanghai'

留学的高材生们,请自行搜索对应地区代码。

接下来就是格式化输出了。我习惯是在数据库存储时间戳,在需要的地方转换成时间字符串使用。这样处理时间在各种语言开发中都比较常见。

2.1、时间戳转time

将long类型的时间戳timestamp赋值给time

1
2
3
import time

time.localtime(timestamp)

时间戳为字符串,记得先转换一下long(timestamp)

2.2、格式化输出time

时间格式化使用的是time模块内部函数strftime:

1
2
3
import time

timestr = time.strftime('%Y-%m-%d',time.localtime(timestamp))

%Y、%m、%d分别代表年月日,常用指令如下:

%Y: 年份,如2018 %m: 月份,如01 %d: 代表在月份中的哪一天[01-31] %H: 小时,24小时制 %M: 分钟[0-59] %S: 秒[00,61],啥玩意61?没错,官方文档解释是可以支持闰秒60的显示,由于不知名的历史原因,61也支持。

为什么觉得坑呢,因为我们亲爱的sdf常用格式化字符串是“yyyy-MM-dd HH:mm:ss”。看来开发者是C++出身,延用了部分C风格。

完整的格式化指令参考这里

到这里,还没有结束,上面只是python的处理方式。Django还有自己的过滤器,用于在页面中格式化显示时间。

3、date filter

Django在模版层可以使用filter来控制数据的显示。其中date用来格式化datetime等日期类型的数据。模板可能随时都会替换,较为良好的时间处理方式,是将要显示的日期对象传给模板,在模板层控制具体的表现。 直接上代码:

{{ datetime|date:"Y-m-d H:i:s" }}

你说上面的i是什么玩意?m、s怎么小写了?我怎么知道Django设计者怎么想的。总之这里与python的不同,常用的在上面的代码中应该也能看出来,这里就不说了。有趣的是s这里官方给出的范围是'00'-'59',比较传统了。感觉同一个日期python和django输出,会相差那么几秒。

date过滤器的指令还有很多,请参考这里

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值