13,032
回編集
 (ページの作成:「== 概要 == Qtにおいて、<code>QDate</code>クラスまたは<code>QTime</code>クラスを使用して、日付および時刻の有効性を確認する。<br> <br…」)  | 
				|||
| 1行目: | 1行目: | ||
== 概要 ==  | == 概要 ==  | ||
Qtにおいて、<code>QDate</code>クラスまたは<code>QTime</code>クラスを使用して、日付および時刻の有効性を確認する。<br>  | Qtにおいて、<code>QDate</code>クラスまたは<code>QTime</code>クラスを使用して、日付および時刻の有効性を確認する。<br>  | ||
<br><br>  | |||
== エポックタイムの取得 ==  | |||
エポックタイム (UNIXタイムやPOSIXタイムとも呼ばれる) を取得する場合、<code>QDateTime</code>クラスを使用する。<br>  | |||
エポックタイムは、1970年1月1日00:00:00 UTCからの経過秒数を示しており、多くのプログラミング環境で日付と時刻を扱う際の基準である。<br>  | |||
 <syntaxhighlight lang="c++">  | |||
 #include <QDateTime>  | |||
 // 現在の日時を取得  | |||
 QDateTime now = QDateTime::currentDateTime();  | |||
 // エポックタイム (UNIXタイム) を秒単位で取得  | |||
 // toSecsSinceEpochメソッドは、Qt 5.8以降で使用可能  | |||
 // Qt 5.8以前を使用している場合は、toTime_tメソッドを使用することもできるが、2038年問題に対応していないため注意する必要がある  | |||
 qint64 epochTime = now.toSecsSinceEpoch();  | |||
 </syntaxhighlight>  | |||
<br><br>  | |||
== ISO 8601 ==  | |||
ISO 8601では、日付と時刻は"YYYY-MM-DDTHH:MM:SS"で表現される。<br>  | |||
例えば、2024年3月15日 0時14分44秒の場合は、"2024-03-15T00:14:44"のように表す。 ("T"は、日付と時刻の区切りを示す)<br>  | |||
<br>  | |||
ISO 8601は国際標準化機構(ISO)により定められた日付と時刻の表記に関する国際規格であり、主にデータ交換の文脈で利用される。<br>  | |||
<br><br>  | |||
== その他の時刻形式 ==  | |||
==== yyyy/MM/dd HH:mm:ss形式 ====  | |||
この形式は特定の国や地域でよく使用されるが、厳密に定義された国際規格が存在するわけではない。<br>  | |||
しかし、他のソフトウェアやデータベースシステムで日付と時刻を表現するために使用されることがある。<br>  | |||
<br>  | |||
以下の例では、yyyy/MM/dd HH:mm:ss形式からHH:mm:ssの部分 (時刻) のみを取得している。<br>  | |||
 <syntaxhighlight lang="c++">  | |||
 #include <QDateTime>  | |||
 #include <QTime>  | |||
 QString originalDateTimeString = "2024/03/15 00:14:44";  | |||
 QDateTime dateTime             = QDateTime::fromString(originalDateTimeString, "yyyy/MM/dd HH:mm:ss");  | |||
 if (dateTime.isValid()) {  | |||
    QString timeString = dateTime.time().toString("HH:mm:ss");  | |||
    std::cout << QString("Converted Time : %1").arg(timeString).toStdString() << std::endl;  | |||
 }  | |||
 else {  | |||
    std::cout << QString("Error: Invalid date/time format.").toStdString() << std::endl;  | |||
 }  | |||
 </syntaxhighlight>  | |||
<br><br>  | <br><br>  | ||
| 45行目: | 91行目: | ||
時刻の有効性が確認できない。<br>  | 時刻の有効性が確認できない。<br>  | ||
<br><br>  | <br><br>  | ||
__FORCETOC__  | __FORCETOC__  | ||
[[カテゴリ:Qt]]  | [[カテゴリ:Qt]]  | ||