Оказывается, я неправильно применял кватернионы: В этой строке:
transform->position += glm::vec3 {deltaPos.x, 0, deltaPos.y} * transform->orientation
определение умножения в GLM фактически вращало вектор с помощью инверсии кватерниона. Правильная строка была:
transform->position += transform->orientation * glm::vec3 {deltaPos.x, 0, deltaPos.y};
Спасибо Нико Шертлеру за то, что он направил мое внимание в правильном направлении.
Самый легкий путь состоит в том, чтобы использовать dateutil.parser.parse (), чтобы проанализировать строку даты в часовой пояс осведомленный объект даты и времени, затем использовать strftime () для получения формата, который Вы хотите.
import dateutil.parser
d = dateutil.parser.parse('2008-09-26T01:51:42.000Z')
print(d.strftime('%m/%d/%Y')) #==> '09/26/2008'
>>> import time
>>> timestamp = "2008-09-26T01:51:42.000Z"
>>> ts = time.strptime(timestamp[:19], "%Y-%m-%dT%H:%M:%S")
>>> time.strftime("%m/%d/%Y", ts)
'09/26/2008'
См. документацию модуля Python time
для получения дополнительной информации.
2008-09-26T01:51:42.000Z
дата ISO8601, и формат может быть очень разнообразным. Если Вы хотите проанализировать эти даты, см. Python Wiki на работа со временем . Это содержит некоторые полезные ссылки на модули.
def datechange(datestr):
dateobj=datestr.split('-')
y=dateobj[0]
m=dateobj[1]
d=dateobj[2]
datestr=d +'-'+ m +'-'+y
return datestr
Вы можете создать такую функцию, которая принимает объект даты и возвращает дату в желаемом формате dateFormat ....