我正在尝试将日期组合成一个星期的数字和年份,然后我想将该周数转换回unix时间戳.我该怎么做呢?
我用了 :
utctime = datetime.datetime(1601,1,1) + datetime.timedelta(microseconds = tup[5])
last_visit_time = "Last visit time:"+ utctime.strftime('%Y-%m-%d %H:%M:%S')
但我有1601的时间,所以错误显示:
ValueError: year=1601 is before 1900; the datetime strftime() methods require year >= 1900
我使用python2.7,我该怎么做?非常感谢!
我在python中有一个日期对象,我需要使用%a(工作日)和%b(月)代码在遗留系统的C语言环境中生成时间戳.但是我不想更改应用程序的语言环境,因为其他部分需要尊重用户的当前语言环境.有没有办法用某个语言环境调用strftime()?
我想格式化一个日期对象,以便我可以显示诸如"7月3日"或"10月1日"之类的字符串.我在Date.strftime中找不到生成"rd"和"st"的选项.有人知道怎么做吗?
我正在尝试将字符串"20091229050936"转换为"2009年12月29日(UTC)"
>>>import time
>>>s = time.strptime("20091229050936", "%Y%m%d%H%M%S")
>>>print s.strftime('%H:%M %d %B %Y (UTC)')
Run Code Online (Sandbox Code Playgroud)
给
AttributeError: 'time.struct_time' object has no attribute 'strftime'
显然,我犯了一个错误:时间错了,它是一个日期时间对象!它有一个日期和时间组件!
>>>import datetime
>>>s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")
Run Code Online (Sandbox Code Playgroud)
给
AttributeError: 'module' object has no attribute 'strptime'
我是怎么意思将字符串转换为格式化的日期字符串?
可能重复:
Python:日期序数输出?
在Python中,time.strftime可以很容易地产生类似"星期四5月05"的输出,但是我想生成一个像"星期四5月5日"这样的字符串(注意日期的附加"th").做这个的最好方式是什么?
我很好奇,想知道是否有在使用PHP任何优势strftime()了date(),反之亦然.
我下载的课程使用了strftime().但是,由于它不支持某些系统上的所有时间格式,我想改为使用它date().我想知道使用一个是否有任何重大差异或优势.
那个strftime()只支持那些服务器c库支持的日期格式的事实呢?是否date()有任何类似的限制?
在问题904928(Python strftime - 没有领先0的日期?) Ryan回答:
实际上我有同样的问题,我意识到,如果你在%和字母之间添加一个连字符,你可以删除前导零.
例如%Y /% - m /% - d.
我遇到了同样的问题,这是一个很好的解决方案,但是,为什么这样做呢?
>>> import datetime
>>> datetime.datetime(2015, 3, 5).strftime('%d')
'05'
>>> datetime.datetime(2015, 3, 5).strftime('%-d')
'5'
# It also works with a leading space
>>> datetime.datetime(2015, 3, 5).strftime('%e')
' 5'
>>> datetime.datetime(2015, 3, 5).strftime('%-e')
'5'
# Of course other numbers doesn't get stripped
>>> datetime.datetime(2015, 3, 15).strftime('%-e')
'15'
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于这方面的文件?- > python datetime docs/python string operations
看起来这在Windows机器上不起作用,我不使用Windows,但知道它为什么不起作用会很有趣?
我没有意识到这一点,但显然Python的strftime功能不支持1900年之前的日期:
>>> from datetime import datetime
>>> d = datetime(1899, 1, 1)
>>> d.strftime('%Y-%m-%d')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: year=1899 is before 1900; the datetime strftime() methods require year >= 1900
Run Code Online (Sandbox Code Playgroud)
我确信我可以自己做一些事情来做这件事,但我认为这个strftime功能是有原因的(而且还有一个原因,它不能支持1900年以前的日期).我需要能够支持1900年之前的日期.我只是使用str,但是有太多的变化.换句话说,它可能有也可能没有微秒,或者它可能有也可能没有时区.这有什么解决方案吗?
如果它有所不同,我这样做是为了我可以将数据写入文本文件并使用Oracle SQL*Loader将其加载到数据库中.
我基本上最终做了Alex Martelli的回答.这是一个更完整的实现:
>>> from datetime import datetime
>>> d = datetime.now()
>>> d = d.replace(microsecond=0, tzinfo=None)
>>> str(d)
'2009-10-29 11:27:27'
Run Code Online (Sandbox Code Playgroud)
唯一的区别str(d)是相当于d.isoformat(' ').
我使用strftime将原始时间格式化为输入框的文本.通常,当我使用strftime时,我检查对象是否为nil以防止错误,除非使用nil?但是我似乎不能在这里使用它:
<%= text_field_tag :event_date, @event.event_date.strftime("%m/%d/%Y at %I:%M%p"), :size=>30 %>
Run Code Online (Sandbox Code Playgroud)
我删除了,因为它抛出了一个错误.如果@ event.event_date为nil,如何确保此语句有效?
谢谢