Wpis z mikrobloga

#qt #programowanie #cpp

QDateTime aktualnyczasunix;
qint64 qaktualnyczasunix = aktualnyczasunix.currentMSecsSinceEpoch();

wywołuję coś takiego i wychodzą mi jakieś dziwne liczby.
currentMSecsSinceEpoch w teorii powinno mi zwrócić czas w milisekundach od 1970 do dziś, a zwraca mi tyle, że pokazuje iż mamy rok ~40 000;

qint64 QDateTime::currentMSecsSinceEpoch()

Returns the number of milliseconds since 1970-01-01T00:00:00 Universal Coordinated Time. This number is like the POSIX timet variable, but expressed in milliseconds instead.
  • 4
  • Odpowiedz
QDateTime aktualnyczasunix;

Tutaj używasz domyślnego konstruktora, czyli:

QDateTime::QDateTime()

Constructs a null datetime (i.e. null date and null time). A null datetime is invalid, since the date is invalid.


I wszystko jasne. Użyj QDateTime::currentDateTime() (metoda statyczna), czyli:

QDateTime aktualnyczasunix = QDateTime::currentDateTime();
A poza tym zacznij czytać dokumentację Qt zanim zadasz tu pytanie, bo zadajesz pytanie o każdą pierdołę i spamujesz tagi, a nie raczysz sprawdzić najpierw co piszą w dokumentacji.
  • Odpowiedz
@vipe: QDateTime aktualnyCzas = QDateTime::currentDateTime();

qint64 czas_unix = aktualnyCzas.currentMSecsSinceEpoch();

mam coś takiego i dalej mi głupoty wychodzą
  • Odpowiedz
@trebeter: Pisałeś:

currentMSecsSinceEpoch w teorii powinno mi zwrócić czas w milisekundach od 1970 do dziś

Uznałem, że wiesz co piszesz :)

Natomiast inna sprawa, że currentMSecsSinceEpoch() jest metodą statyczną, tak że w ogóle Ci niepotrzebny jest obiekt klasy QDateTime(), bo ta metoda nic z obiektu nie bierze i od niego nie zależy. Po prostu:

qint64 czas_unix = QDateTime::currentMSecsSinceEpoch();
  • Odpowiedz