How to convert a time string in a Google AppEngine

2019-08-06 06:07发布

As per question title, how to convert a Python string to a Google App Engine db.TimeProperty?

I tried to do:

obj.time = strptime("10:00", "%H:%M")

However I get the following error:

BadValueError: Property time must be a time, but was time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)

1条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-08-06 06:40

I'm not familiar with the (superseded) db docs, but from the NDB Cheat Sheet db.TimeProperty() corresponds directly to ndb.TimeProperty(). And from ndb's Date and Time Properties:

Three property types are available for storing date- and time-related values:

  • DateProperty
  • TimeProperty
  • DateTimeProperty

These take values belonging to the corresponding classes (date, time, datetime) of the standard Python datetime module. The most general of the three is DateTimeProperty, which denotes both a calendar date and a time of day; the others are occasionally useful for special purposes requiring just a date (such as a date of birth) or just a time (such as a meeting time). For technical reasons, DateProperty and TimeProperty are subclasses of DateTimeProperty, but you shouldn't depend on this inheritance relationship (and note that it differs from the inheritance relationships between the underlying classes defined by the datetime module itself).

So I'd write it:

obj.time = datetime.datetime.strptime("10:00", "%H:%M").time()
查看更多
登录 后发表回答