Qt/Classes

QDate, QDateTime Code Examples

아침엔커피한잔 2017. 5. 2. 12:01

http://doc.qt.io/qt-5/qdate.html


QDate stCurrentDate = QDate::currentDate();
#define UTC_TIME_ASIA_SEOUL (9 * 60 * 60) // 9h 

QDateTime stCurrentDateTime; 
stCurrentDateTime = QDateTime::currentDateTimeUtc(); 
stCurrentDateTime = stCurrentDateTime.addSecs( UTC_TIME_ASIA_SEOUL );

QDate stDate( 2016, 01, 27 );
QDate stDate( 2016, 01, 28 ); 
qDebug() << stDate; // QDate("2016-01-28") 

// 3일 이후 날짜를 구한다. 
stDate = stDate.addDays( 3 ); 
qDebug() << stDate; // QDate("2016-01-31") 

// 다시 3일 이전 날짜를 구한다. 
stDate = stDate.addDays( -30 ); 
qDebug() << stDate; // QDate("2016-01-28")

QDate stFileDate; QDate stCurrentDate; // 현재 날짜 기준으로 파일 날짜와의 차이를 구함 
int nDaysDelta = stFileDate.daysTo( stCurrentDate ); 
// nDayDelta == 7 이라면, 파일날짜가 7일전 인것이다. 
// nDayDelta == 0 이라면, 파일날짜와 현재날짜가 같은 것이다. 
// nDayDelta == -3 이라면, 파일날짜가 현재날짜보다 3일이후인 것이다.

QDateTime startDate(QDate(2012, 7, 6), QTime(8, 30, 0));
  QDateTime endDate(QDate(2012, 7, 7), QTime(16, 30, 0));
  qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);

  startDate = QDateTime(QDate(2012, 7, 6), QTime(23, 55, 0));
  endDate = QDateTime(QDate(2012, 7, 7), QTime(0, 5, 0));
  qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);

  qSwap(startDate, endDate); // Make endDate before startDate.
  qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);

QTime time1 = QTime::fromString("131", "HHh");
  // time1 is 13:00:00
  QTime time1 = QTime::fromString("1apA", "1amAM");
  // time1 is 01:00:00

  QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02",
                                              "'M'M'd'd'y'yyhh:mm:ss");
  // dateTime is 1 January 1998 00:01:02

QDateTime dateTime = QDateTime::fromString("130", "Mm"); // invalid

 QString string = "Monday, 23 April 12 22:51:41";
  QString format = "dddd, d MMMM yy hh:mm:ss";
  QDateTime invalid = QDateTime::fromString(string, format);

 QString string = "Tuesday, 23 April 12 22:51:41";
  QString format = "dddd, d MMMM yy hh:mm:ss";
  QDateTime valid = QDateTime::fromString(string, format);


  QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s");
  // dateTime is January 30 in 1900 at 00:00:01.
  dateTime = QDateTime::fromString("12", "yy");
  // dateTime is January 1 in 1912 at 00:00:00.


  QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s");
  // dateTime is January 30 in 1900 at 00:00:01.
  dateTime = QDateTime::fromString("12", "yy");
  // dateTime is January 1 in 1912 at 00:00:00.

QDateTime dt = QDateTime::currentDateTime();
  dt.setTime(QTime());

 QDateTime local(QDateTime::currentDateTime());
  qDebug() << "Local time is:" << local;

  QDateTime UTC(local);
  UTC.setTimeSpec(Qt::UTC);
  qDebug() << "UTC time is:" << UTC;

  qDebug() << "There are" << local.secsTo(UTC) << "seconds difference between the datetimes.";

QDateTime UTC(QDateTime::currentDateTimeUtc());
  QDateTime local(UTC.toLocalTime());
  qDebug() << "UTC time is:" << UTC;
  qDebug() << "Local time is:" << local;
  qDebug() << "No difference between times:" << UTC.secsTo(local);

QDateTime local(QDateTime::currentDateTime());
  QDateTime UTC(local.toTimeSpec(Qt::UTC));
  qDebug() << "Local time is:" << local;
  qDebug() << "UTC time is:" << UTC;
  qDebug() << "No difference between times:" << local.secsTo(UTC);

QDateTime local(QDateTime::currentDateTime());
  QDateTime UTC(local.toUTC());
  qDebug() << "Local time is:" << local;
  qDebug() << "UTC time is:" << UTC;
  qDebug() << "No difference between times:" << local.secsTo(UTC);