python时间问题
我正在使用 exif.py 库。打电话后
tags=exif.process_file(...)
我想检索捕获图像的时间。所以我现在继续
t =tags['Image DateTime'] if tags.has_key('Image DateTime') else time.time()
我想将 t 存储在 django 的数据库中。为此 t 必须采用 2010-07-20 14:37:12 的形式,但显然 exif 提供 2010:07:20 14:37:12 但是当我去时
type(t)
它返回“实例”而不是浮动,这是以下结果
type(time.time())
或“str”,它是字符串的类型。我如何解析 EXIF 给我的值并将其填充到 django 模型中?
I am using the exif.py library. After calling
tags=exif.process_file(...)
i want to retrieve the time the image was captured. so i continue with
t =tags['Image DateTime'] if tags.has_key('Image DateTime') else time.time()
now i want to store t in django's database. For that t must be in the form 2010-07-20 14:37:12 but apparently exif delivers 2010:07:20 14:37:12 however when i go
type(t)
it returns 'instance' as opposed to float which is the result of
type(time.time())
or 'str' which is the type of string. How can I parse the value EXIF gave me to stuff it into the django model?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用
time.strptime()
来解析str()
值,然后将时间元组格式化为任何所需的形式。使用 EXIF 返回的“图像日期时间”属性的示例。
Use
time.strptime()
to parse thestr()
value, than format the time tuple to any desired form.An example, using the 'Image DateTime' attribute returned by EXIF.
Django 最适合使用
datetime
对象。字符串可以转换为datetime
,但您不应该关注字符串。您应该专注于创建正确的datetime
对象。选择 1. 找出 exif 时间的实际类别。使用
t.__class__
代替type(t)
来查看它到底是什么。另外,dir(t)
看看它有哪些方法。它可能具有创建适当的浮点值或 time.struct_time 值的方法。选择 2. 使用
datetime.datetime.strptime
解析时间字符串以创建正确的datetime
对象。阅读此内容: http://docs.python.org/library/datetime .html#datetime.datetime.strptimeDjango works best with
datetime
objects. Strings can be converted todatetime
, but you should not focus on strings. You should focus on creating a properdatetime
object.Choice 1. Figure out what actual class the exif time is. Instead of
type(t)
, dot.__class__
to see what it really is. Also, sodir(t)
to see what methods it has. It may have methods which will create a proper float value ortime.struct_time
value.Choice 2. Parse the time string with
datetime.datetime.strptime
to create a properdatetime
object. Read this: http://docs.python.org/library/datetime.html#datetime.datetime.strptime看起来 exif.py 返回了 IFD_Tag 的实例。您想要的值可能在 t.values 中。您还可以使用 datetime.strptime() 来解析从 exif 数据中获取的字符串。
It looks like exif.py returns an instance of IFD_Tag. The values you want may be in t.values. You can also use datetime.strptime() to parse the string you get from the exif data.
假设 Tags['Image DateTime'](如果存在)返回类似“2010:07:20 14:37:12”的字符串,那么您可以使用:
replace
修复 exif 中的时间字符串:如果您想要 GMT 而不是当地时间,请使用
Assuming that tags['Image DateTime'], if present, returns a string like "2010:07:20 14:37:12" then you can use:
replace
fixes the time-string from exif:If you want GMT rather than local time use