Преобразование QString, содержащее PostgreSQL TimeStamp в QDateTime

StackOverflow https://stackoverflow.com/questions/4329877

  •  29-09-2019
  •  | 
  •  

Вопрос

У меня проблемы с, казалось бы, очень простой проблемой: я хочу получить QDateTime от QString, содержащего временную метку. Я получил метку времени от PostgreSQL, но это не имеет значения. Вот код, который не работает:

QString timestamp = "2010-10-09 19:21:46+02:00";
QString format = "YYYY-MM-DD HH:MM:SSTZD";
QDateTime dt = QDateTime::fromString(timestamp, format);
qDebug() << dt.toString(); // outputs empty string

Должно быть что -то очень очевидное, что мне не хватает. Спасибо!

Это было полезно?

Решение

Я делал две ошибки. В спецификациях формата нет TZD, поэтому я удалил информацию о часовом поясе, так как она не нужна в моем приложении, выполняя:

timeStamp.chop(6);

А затем использовал следующий формат, чтобы получить QDateTime. Обратите внимание на символы нижнего формата:

QDateTime createdAt = QDateTime::fromString(timeStamp, "yyyy-MM-dd HH:mm:ss");

Спасибо всем выше, за помощь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top