我在Python 中将datetime字符串转换为'2/23/2012'对象时看到了很多,但我想转向其他方式.
我有datetime,我想把它转换成字符串'2/23/2012'.
Lev*_*von 450
您可以使用strftime来帮助您设置日期格式.
例如,
import datetime
t = datetime.datetime(2012, 2, 23, 0, 0)
t.strftime('%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
会产生:
'02/23/2012'
Run Code Online (Sandbox Code Playgroud)
有关格式的更多信息,请点击这里
Eth*_*man 172
date和datetime对象(以及time同样)支持使用迷你语言来指定输出,有两种方法可以访问它:
dt.strftime('format here'); 和'{:format here}'.format(dt)所以你的例子看起来像:
dt.strftime('%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
要么
'{:%m/%d/%Y}'.format(dt)
Run Code Online (Sandbox Code Playgroud)
为了完整起见:您还可以直接访问对象的属性,但之后您只能获取数字:
'%s/%s/%s' % (dt.month, dt.day, dt.year)
Run Code Online (Sandbox Code Playgroud)
学习迷你语言所花费的时间是值得的.
供参考,以下是迷你语言中使用的代码:
%a 工作日作为语言环境的缩写名称. %A 平日作为语言环境的全名. %w 工作日为十进制数,其中0表示星期日,6表示星期六.%d 作为零填充十进制数的月中的某一天.%b 月份为区域设置的缩写名称.%B 月份为区域设置的全名.%m 月份为零填充十进制数.01,...,12 %y 没有世纪的年份为零填充十进制数.00,...,99 %Y 年份以世纪为十进制数.1970年,1988年,2001年,2013年 %H 小时(24小时制)作为零填充十进制数.00,...,23 %I 小时(12小时制)作为零填充十进制数.01,...,12 %p Locale相当于AM或PM.%M 分钟为零填充十进制数.00,...,59 %S 其次是零填充十进制数.00,...,59%f Microsecond为十进制数,左侧为零填充.000000,...,999999%z UTC偏移量,格式为+ HHMM或-HHMM(如果天真,则为空),+ 0000,-0400,+ 1030%Z 时区名称(如果天真,则为空),UTC,EST,CST %j 一年中的一天作为零填充十进制数.001,...,366 %U 一年中的周数(星期日是第一个)作为零填充十进制数.%W 一年中的周数(星期一是第一个)作为十进制数.%c Locale的适当日期和时间表示. %x Locale的适当日期表示. %X Locale的适当时间表示. %% 文字'%'字符.Pau*_*man 26
另外一个选项:
import datetime
now=datetime.datetime.now()
now.isoformat()
# ouptut --> '2016-03-09T08:18:20.860968'
Run Code Online (Sandbox Code Playgroud)
Dom*_*ano 17
您可以通过以下方式轻松将日期时间转换为字符串:
from datetime import datetime
date_time = datetime(2012, 2, 23, 0, 0)
date = date_time.strftime('%m/%d/%Y')
print("date: %s" % date)
Run Code Online (Sandbox Code Playgroud)
这些是可用于将日期时间转换为字符串的一些模式:
为了更好地理解,你可以看看这篇关于如何在Python中将字符串转换为日期时间和日期时间转换为字符串的文章或官方strftime文档
jul*_*ria 13
您可以使用简单的字符串格式化方法
>>> 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'
Run Code Online (Sandbox Code Playgroud)
SAR*_*ose 11
迄今为止最性感的版本是带有格式字符串的。
from datetime import datetime
print(f'{datetime.today():%Y-%m-%d}')
Run Code Online (Sandbox Code Playgroud)
Dan*_*kin 10
如果您正在寻找一种简单的datetime字符串转换方法并且可以省略格式。您可以将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'
Run Code Online (Sandbox Code Playgroud)
但请注意以下事项。如果其他解决方案会AttributeError在变量None处于这种情况下时上升,您将收到一个'None'字符串。
In [9]: str(None)[:19]
Out[9]: 'None'
Run Code Online (Sandbox Code Playgroud)
type-specific formatting 也可以使用:
t = datetime.datetime(2012, 2, 23, 0, 0)
"{:%m/%d/%Y}".format(t)
Run Code Online (Sandbox Code Playgroud)
输出:
'02/23/2012'
Run Code Online (Sandbox Code Playgroud)
如果你也想要时间,那就去吧
datetime.datetime.now().__str__()
Run Code Online (Sandbox Code Playgroud)
2019-07-11 19:36:31.118766为我在控制台中打印
| 归档时间: |
|
| 查看次数: |
458713 次 |
| 最近记录: |