python – 如何以常规格式打印日期?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何以常规格式打印日期?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3046字,纯文字阅读大概需要5分钟。
内容图文
![python – 如何以常规格式打印日期?](/upload/InfoBanner/zyjiaocheng/717/7c9e15e731ef40de9001e93282e38755.jpg)
这是我的代码:
import datetime
today = datetime.date.today()
print today
这打印:2008-11-22这正是我想要的.
但是,我有一个列表,我正在追加这个,然后突然一切都变得“不稳定”.这是代码:
import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print mylist
这打印出以下内容:
[datetime.date(2008, 11, 22)]
我怎样才能得到像2008-11-22这样的简单日期?
解决方法:
为什么:日期是对象
在Python中,日期是对象.因此,当您操纵它们时,您操纵对象,而不是字符串,而不是时间戳或任何东西.
Python中的任何对象都有两个字符串表示:
>“print”使用的常规表示可以使用str()函数获取.大多数情况下,它是最常见的人类可读格式,用于简化显示.所以str(datetime.datetime(2008,11,22,19,53,42))给你’2008-11-22 19:53:42′.
>用于表示对象性质(作为数据)的替代表示.它可以使用repr()函数,并且可以方便地了解在开发或调试时操作的数据类型. repr(datetime.datetime(2008,11,22,19,53,42))为您提供’datetime.datetime(2008,11,22,19,53,42)’.
发生的事情是,当你使用“print”打印日期时,它使用了str(),所以你可以看到一个漂亮的日期字符串.但是当你打印了mylist时,你已经打印了一个对象列表,Python试图用repr()来表示数据集.
方法:你想用它做什么?
好吧,当你操纵日期时,请继续使用日期对象.他们有数以千计的有用方法,大多数Python API都希望将日期作为对象.
当你想要显示它们时,只需使用str().在Python中,良好的做法是明确地投射所有内容.因此,只有在打印时,使用str(日期)获取日期的字符串表示.
最后一件事.当您尝试打印日期时,您打印了mylist.如果要打印日期,则必须打印日期对象,而不是其容器(列表).
E.G,您想要在列表中打印所有日期:
for date in mylist :
print str(date)
请注意,在该特定情况下,您甚至可以省略str(),因为print将为您使用它.但它不应该成为一种习惯:-)
实际案例,使用您的代码
import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print mylist[0] # print the date object, not the container ;-)
2008-11-22
# It's better to always use str() because :
print "This is a new day : ", mylist[0] # will work
>>> This is a new day : 2008-11-22
print "This is a new day : " + mylist[0] # will crash
>>> cannot concatenate 'str' and 'datetime.date' objects
print "This is a new day : " + str(mylist[0])
>>> This is a new day : 2008-11-22
高级日期格式
日期具有默认表示,但您可能希望以特定格式打印它们.在这种情况下,您可以使用strftime()方法获取自定义字符串表示形式.
strftime()需要一个字符串模式,说明您希望如何设置日期格式.
E.G:
print today.strftime('We are the %d, %b %Y')
>>> 'We are the 22, Nov 2008'
“%”后面的所有字母代表某种格式:
>%d是日期编号
>%m是月份编号
>%b是月份缩写
>%y是最后两位数的年份
>%Y是全年
等等
Have a look at the official documentation或McCutchen’s quick reference你无法全部了解它们.
从PEP3101开始,每个对象都可以通过任何字符串的方法格式自动使用自己的格式.在datetime的情况下,格式与使用的格式相同
strftime的.所以你可以像上面这样做:
print "We are the {:%d, %b %Y}".format(today)
>>> 'We are the 22, Nov 2008'
此表单的优点是您还可以同时转换其他对象.
随着Formatted string literals(自Python 3.6,2016-12-23)的推出,这可以写成
import datetime
f"{datetime.datetime.now():%Y-%m-%d}"
>>> '2017-06-15'
本土化
如果你以正确的方式使用它们,日期可以自动适应当地语言和文化,但它有点复杂.也许关于SO的另一个问题(Stack Overflow);-)
内容总结
以上是互联网集市为您收集整理的python – 如何以常规格式打印日期?全部内容,希望文章能够帮你解决python – 如何以常规格式打印日期?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。