仅在Python中将datetime对象转换为日期字符串
在Python中,我看到了很多关于将日期字符串转换为仅在Python中将datetime对象转换为日期字符串,python,datetime,Python,Datetime,在Python中,我看到了很多关于将日期字符串转换为datetime对象的内容,但我想换一种方式。 我有 datetime.datetime(2012, 2, 23, 0, 0) 我想把它转换成字符串,比如'2/23/2012',你可以用它来帮助你格式化日期 例如: 将产生: '02/23/2012' 有关格式化的详细信息,请参见您可以使用简单的字符串格式化方法: >>> dt = datetime.datetime(2012, 2, 23, 0, 0) >>&
datetime
对象的内容,但我想换一种方式。我有
datetime.datetime(2012, 2, 23, 0, 0)
我想把它转换成字符串,比如'2/23/2012'
,你可以用它来帮助你格式化日期
例如:
将产生:
'02/23/2012'
有关格式化的详细信息,请参见您可以使用简单的字符串格式化方法:
>>> dt = datetime.datetime(2012, 2, 23, 0, 0)
>>> '{0.month}/{0.day}/{0.year}'.format(dt)
'2/23/2012'
>>> '%s/%s/%s' % (dt.month, dt.day, dt.year)
'2/23/2012'
也可用于:
t = datetime.datetime(2012, 2, 23, 0, 0)
"{:%m/%d/%Y}".format(t)
输出:
'02/23/2012'
date
和datetime
对象(以及time
对象)支持a,有两种访问方式:
- :
dt.strftime('format here')
- (Python2.6+):
“{:format here}”。format(dt)
- (python 3.6+):
f'{dt:format here}'
dt.strftime('日期为%b%d,%Y')
“日期为{:%b%d,%Y}”。格式(dt)
f'日期为{dt:%b%d,%Y}'
'The date is %s/%s/%s' % (dt.month, dt.day, dt.year)
# The date is 02/23/2012
花时间学习迷你语言是值得的
以下是mini语言中使用的代码供参考:
工作日作为区域设置的缩写名称%a
工作日作为区域设置的全名%A
以十进制数字表示的工作日,其中0表示星期日,6表示星期六%w
以零填充十进制数表示的月份日期%d
Month作为区域设置的缩写名称%b
Month作为区域设置的全名%B
月份为零填充十进制数。01,…,12%m
没有世纪作为零填充十进制数的年份。00,…,99%y
以世纪为十进制数的年份。1970年、1988年、2001年、2013年%Y
小时(24小时时钟)作为零填充十进制数。00,…,23%H
小时(12小时时钟)作为零填充十进制数。01,…,12%I
与AM或PM相当的语言环境%p
分钟作为零填充十进制数。00,…,59%M
秒作为零填充十进制数。00,…,59%S
微秒为十进制数,左侧填充零。000000,…,999999%f
UTC偏移量的形式为+HHMM或-HHMM(如果未设置,则为空)、+0000、-0400、+1030%z
时区名称(如果未设置,则为空)、UTC、EST、CST%Z
以零填充十进制数表示的一年中的某一天。001,…,366%j
一年中的周数(第一个是星期日)为零填充十进制数%U
一年中的周数(第一个是星期一)作为十进制数%W
区域设置的适当日期和时间表示%c
区域设置的适当日期表示%x
区域设置的适当时间表示%X
文本“%”字符%%
str.join
,可用于构建字符串
d = datetime.now()
'/'.join(str(x) for x in (d.month, d.day, d.year))
'3/7/2016'
另一种选择:
import datetime
now=datetime.datetime.now()
now.isoformat()
# ouptut --> '2016-03-09T08:18:20.860968'
您可以将datetime转换为字符串
published_at = "{}".format(self.published_at)
通过直接使用datetime对象的组件,可以将datetime对象转换为字符串
from datetime import date
myDate = date.today()
#print(myDate) would output 2017-05-23 because that is today
#reassign the myDate variable to myDate = myDate.month
#then you could print(myDate.month) and you would get 5 as an integer
dateStr = str(myDate.month)+ "/" + str(myDate.day) + "/" + str(myDate.year)
# myDate.month is equal to 5 as an integer, i use str() to change it to a
# string I add(+)the "/" so now I have "5/" then myDate.day is 23 as
# an integer i change it to a string with str() and it is added to the "5/"
# to get "5/23" and then I add another "/" now we have "5/23/" next is the
# year which is 2017 as an integer, I use the function str() to change it to
# a string and add it to the rest of the string. Now we have "5/23/2017" as
# a string. The final line prints the string.
print(dateStr)
如果您正在寻找将
日期时间
转换为字符串的简单方法,并且可以省略格式,请输出-->2017年5月23日。您可以将datetime
对象转换为str
,然后使用数组切片
In [1]: from datetime import datetime
In [2]: now = datetime.now()
In [3]: str(now)
Out[3]: '2019-04-26 18:03:50.941332'
In [5]: str(now)[:10]
Out[5]: '2019-04-26'
In [6]: str(now)[:19]
Out[6]: '2019-04-26 18:03:50'
但请注意以下几点。如果当变量为None
时,其他解决方案将出现AttributeError
,在这种情况下,您将收到'None'
字符串
In [9]: str(None)[:19]
Out[9]: 'None'
如果你也想要时间,就跟我走吧
datetime.datetime.now().__str__()
在console for me中打印
2019-07-11 19:36:31.118766
到目前为止,最性感的版本是带有格式字符串的
从日期时间导入日期时间
打印(f'{datetime.today():%Y-%m-%d})
end_date=“2021-04-18 16:00:00”
结束日期字符串=结束日期.strftime(“%Y-%m-%d”)
打印(结束日期字符串)您可以通过以下方式轻松地将日期时间转换为字符串:
从日期时间导入日期时间
日期时间=日期时间(2012,2,23,0,0)
日期=日期\时间.strftime(“%m/%d/%Y”)
打印(“日期:%s”%date)
以下是一些可用于将datetime转换为字符串的模式:
为了更好地理解,您可以在上或上查看这篇文章,类似地,您可以执行类似于
“{:%Y-%m-%d%H:%m}”的操作。格式(datetime(2001,2,3,4,5))
。有关django中的DateTimeField
或DateField
的详细信息,请参阅pyformat.info。Thanksuset=datetime.datetime.now()
要使用当前日期,从文档中我可以看出,没有办法返回非零填充日期,即'2/23/2012'。@Ron Kalian non-zero padded:t.strftime('%-m/%-d/%-y')
f-strings如果使用python 3.6+,效果会更好。请看下面的答案虽然问题是关于“仅限约会”,但我是为此而来的,所以谢谢。另外,为了得到更人性化的字符串:datetime.datetime.now().ctime()
==>'Wed Sep 4 13:12:39 2019'
这里答案的最性感版本我认为我们对“性感”有不同的解释
datetime.datetime.now().__str__()