免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10312 | 回复: 8
打印 上一主题 下一主题

time.strftime(' (%d-%b-%Y)','2012-03-21T10:37:29')不行啊,错在哪里? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-09 18:42 |只看该作者 |倒序浏览
20可用积分
我想把一个代表时间的字符串2012-03-21T10:37:29
变成格式化的日期: 21-Mar-2012

应该用什么函数来做转换?

最佳答案

查看完整内容

datetime.strptime('2012-03-21T10:37:29','%Y-%m-%dT%H:%M:%S').strftime("(%d-%b-%Y)")

论坛徽章:
0
2 [报告]
发表于 2012-04-09 18:42 |只看该作者
datetime.strptime('2012-03-21T10:37:29','%Y-%m-%dT%H:%M:%S').strftime("(%d-%b-%Y)")

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
3 [报告]
发表于 2012-04-10 08:51 |只看该作者
中间这个T是啥?你可以用strptime和strftime结合使用

论坛徽章:
0
4 [报告]
发表于 2012-04-10 09:26 |只看该作者
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-

  3. import sys
  4. import time


  5. def myprint(obj, end='\n'):
  6.     sys.stdout.write(str(obj) + end)


  7. def main():
  8.     tstr = '2012-03-21T10:37:29'
  9.     fm1 = '%Y-%m-%dT%H:%M:%S'

  10.     # convert string to struct_time

  11.     t = time.strptime(tstr, fm1)
  12.     myprint(t)

  13.     # convert struct_time to string

  14.     fm2 = '%d-%b-%Y'
  15.     ts = time.strftime(fm2, t)
  16.     myprint(ts)


  17. if __name__ == '__main__':
  18.     main()
  19.     myprint('done')
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-04-10 10:48 |只看该作者
anonymous0502 发表于 2012-04-10 09:26


我的python2.6没有strptime函数啊。
我只能用这个版本,工程规定的。

有别的办法么?

论坛徽章:
0
6 [报告]
发表于 2012-04-10 10:50 |只看该作者
>>> time.strftime(' (%d-%b-%Y)', datetime.strptime('2012-03-21T10:37:29','%Y-%m-%dT%H:%M:%S'))
Traceback (most recent call last):

  File "<pyshell#9>", line 1, in <module>
    time.strftime(' (%d-%b-%Y)', datetime.strptime('2012-03-21T10:37:29','%Y-%m-%dT%H:%M:%S'))
TypeError: descriptor 'strftime' requires a 'datetime.time' object but received a 'str'

我改成了datetime类,还是有错误!

论坛徽章:
0
7 [报告]
发表于 2012-04-10 10:53 |只看该作者
我运行过没问题才贴的:

c:\temp>c:\python26\python time_str_convert.py
time.struct_time(tm_year=2012, tm_mon=3, tm_mday=21, tm_hour=10, tm_min=37, tm_sec=29, tm_
wday=2, tm_yday=81, tm_isdst=-1)
21-Mar-2012
done

c:\temp>c:\python32\python time_str_convert.py
time.struct_time(tm_year=2012, tm_mon=3, tm_mday=21, tm_hour=10, tm_min=37, tm_sec=29, tm_
wday=2, tm_yday=81, tm_isdst=-1)
21-Mar-2012
done

论坛徽章:
0
8 [报告]
发表于 2012-04-10 11:24 |只看该作者
是这样,我使用datetime的函数返回一个datetime类的对象,time.strftime / date.strftime却告诉我返回的对象是一个str类型:

  1. >>> date.strftime(' (%d-%b-%Y)', datetime.strptime('2012-03-21T10:37:29','%Y-%m-%dT%H:%M:%S'))
复制代码
Traceback (most recent call last):
  File "<pyshell#55>", line 1, in <module>
    date.strftime(' (%d-%b-%Y)', datetime.strptime('2012-03-21T10:37:29','%Y-%m-%dT%H:%M:%S'))
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'

明明,datetime.strptime返回的就是一个datetime.datetime类型。

但是time.strftime要求一个time类型,date.strftime要求一个date类型。怎么从datetime转化成date或者time类型呢?

论坛徽章:
0
9 [报告]
发表于 2012-04-10 12:18 |只看该作者
date.strftime(format)

没看到说这个支持两个参数啊,看不懂你的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP