Qt-QString в int

225
10 февраля 2019, 08:50

Как конвертировать:

QString test="12.09.2019";

в integer? Есть ли в Qt функция atoi?

UPD: в С++(без QT) я мог конвертировать таким способом:

int day=atoi(&str1[0]);
      int month=atoi(&str1[3]);
      int year=atoi(&str1[6]);
Answer 1

Чтобы дату в число, нужно:

  • Распарсить строку с датой, например QDateTime::fromString
  • Получить timestamp (секунды от 1970-01-01T00:00:00.000) используя QDateTime::toSecsSinceEpoch

Пример:

QString test = "12.09.2019";
QDateTime dt = QDateTime::fromString(test, "dd.MM.yyyy");
qint64 secs = dt.toSecsSinceEpoch();

UPD. если нужно просто поработать с датой, то есть QDate:

QString test = "12.09.2019";
QDate d = QDate::fromString(test, "dd.MM.yyyy");
d.day()   // 12
d.month() // 9
d.year()  // 2019

Можно и парсить строку через QString::split, пример:

QString test = "12.09.2019";
QStringList parts = str.split('.');
// parts : [ "12", "09", "2019"]
int day = parts[0].toInt();   // 12
int month = parts[1].toInt(); // 9
int year = parts[2].toInt();  // 2019
READ ALSO
Передача полей класса в методы класса

Передача полей класса в методы класса

Для большей читабельности кода пришел к мысли что хорошо бы передавать поля класса в методы класса явноТ

267
Не могу придумать абстракцию для класса

Не могу придумать абстракцию для класса

Задание у меня следующееЕсть класс часы и в нем содержится статическое поле "часовой пояс"

247
rand string in C

rand string in C

Задание такоe:

221