当tzinfo存在时从python字符串获取日期时间
我有一个表单,用户可以自动生成一个日期。我想将其存储为日期时间 秒后我不需要任何信息,但我找不到datetime.datetime.strptime代码来翻译剩余的内容。因此,我要么想要一个在google app engine上适用于python2.7的strTime代码,要么想要一个删除不需要的额外信息的字符串编辑技巧当tzinfo存在时从python字符串获取日期时间,python,google-app-engine,datetime,Python,Google App Engine,Datetime,我有一个表单,用户可以自动生成一个日期。我想将其存储为日期时间 秒后我不需要任何信息,但我找不到datetime.datetime.strptime代码来翻译剩余的内容。因此,我要么想要一个在google app engine上适用于python2.7的strTime代码,要么想要一个删除不需要的额外信息的字符串编辑技巧 日期从user='2012-09-22 07:36:36.333373-05:00'Python文档将是一个很好的起点。strptime()将是您的最佳选择 import da
日期从user='2012-09-22 07:36:36.333373-05:00'Python文档将是一个很好的起点。strptime()将是您的最佳选择
import datetime
datefromuser = '2012-09-22 07:36:36.333373-05:00'
datetime.datetime.strptime(datefromuser.split(".")[0], "%Y-%m-%d %H:%M:%S")
2012-09-22 07:36:36
您可以对字符串进行切片,以仅选择前19个字符:
>>> datefromuser='2012-09-22 07:36:36.333373-05:00'
>>> datefromuser[:19]
'2012-09-22 07:36:36'
这样,您就可以解析日期,而不必担心微秒和时区
请注意,您可能也希望解析时区。您可以使用来处理整个格式,而无需切片:
>>> import iso8601
>>> iso8601.parse_date(datefromuser)
datetime.datetime(2012, 9, 22, 7, 36, 36, 333373, tzinfo=<FixedOffset '-05:00'>)
导入iso8601
>>>iso8601.parse_日期(datefromuser)
datetime.datetime(2012,9,22,7,36,36,333373,tzinfo=)
iso8601
模块是用纯python编写的,在Google App Engine上运行没有问题。您确定丢弃时区信息是个好主意吗…?这看起来是个好解决方案,但是导入iso8601需要pypi库或我不知道如何在appengine上安装的东西。@zerowords:pypi是Python包索引;它会将您或类似于pip
的工具指向您可以下载软件包的位置。只要从我提供给你的链接下载这个包。Martijn,我从来没有安装过一个库,当我从这个链接下载时,我得到了一个鸡蛋,我没有遇到过。你能告诉我最新的(双关语)吗?@zerowords:用.tar.gz
档案代替鸡蛋。@zerowords:这是一个新问题;围绕日期时间计算展开讨论:logging.info(“res-utime:%s”%(res-utime))
datefrom user
不是有效的python变量。这也不是OP问题的解决方案;如果您试图使用格式字符串解析它,他的输入字符串将引发异常。关于变量,您是对的,但OP定义了它,因此为了简单起见,我重用了它。至于例外情况,它已经被修复。我对原始问题添加了一个修订,以显示现在困扰我的后续错误。在你的回答中,datetime.datetime
应该是datetime
,我相信。`如果我使用from datetime import datetime
,那将是真的。将代码粘贴到python解释器中。