13,081
回編集
| 53行目: | 53行目: | ||
ISO 8601は国際標準化機構(ISO)により定められた日付と時刻の表記に関する国際規格であり、主にデータ交換の文脈で利用される。<br> | ISO 8601は国際標準化機構(ISO)により定められた日付と時刻の表記に関する国際規格であり、主にデータ交換の文脈で利用される。<br> | ||
<br> | <br> | ||
==== UTC時間を日本時間に変換 ==== | |||
以下の例では、"2024-03-01T16:24:32Z"というUTCの日時 (文字列) を日本時間に変換して、"yyyy年M月d日 H時m分"という形式に変換している。<br> | 以下の例では、"2024-03-01T16:24:32Z"というUTCの日時 (文字列) を日本時間に変換して、"yyyy年M月d日 H時m分"という形式に変換している。<br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
| 79行目: | 80行目: | ||
std::cout << formattedDateTime.toStdString() << std::endl; | std::cout << formattedDateTime.toStdString() << std::endl; | ||
} | } | ||
</syntaxhighlight> | |||
<br> | |||
==== 文字列を日時に変換 ==== | |||
まず、<code>QDateTime::fromString</code>メソッドを使用して文字列を<code>QDateTime</code>クラスのオブジェクトに変換する。<br> | |||
次に、<code>QDateTime::toString</code>メソッドを使用して任意の形式 (カスタムの日付フォーマットも指定可能) に変換する。<br> | |||
<syntaxhighlight lang="c++"> | |||
#include <QDateTime> | |||
// ISO 8601形式の日本時間 | |||
QString isoDateStr = "2024-03-02T17:17:00+09:00"; | |||
QDateTime dateTime = QDateTime::fromString(isoDateStr, Qt::ISODate); | |||
if (!dateTime.isValid()) { | |||
std::cerr << QString("日付の変換に失敗しました").toStdString() << std::endl; | |||
return -1; | |||
} | |||
// "yyyy年M月d日 H時m分"形式に変換 | |||
// 時間の表記を"M月d日"や"H時m分"とすることにより、0を付加しない日時に変換できる | |||
QString formattedDateStr = dateTime.toString("yyyy年M月d日 H時m分"); | |||
std::cout << QString("変換後の日付と時間 : %1").arg(formattedDateStr).toStdString() << std::endl; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||