ISO 8601 による日付・時刻表記形式 - ISO 8601 日時フォーマット
ISO 8601 による日付・時刻表記形式を紹介します。
書式 (基本表記)
日本時刻(UTCから時差のある場合)
YYYYMMDDTHHmmss+zzzz
書式 (拡張表記)
UTCの場合
YYYY-MM-DDTHH:mm:ss
日本時刻(UTCから時差のある場合)
YYYY-MM-DDTHH:mm:ss+zz:zz
例
基本表記
拡張表記
2014-05-01T20:45:20+09:00
参考:C#での実装例
C#でISO8601形式で時刻を表示するコードを紹介します。
UI
下図のUIを作成します。Buttonを3つ、TextBoxを1つ配置します。
コード
以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TimeZoneDemo
{
public partial class FormIso8601 : Form
{
public FormIso8601()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
textBox1.Text = dt.ToString("yyyyMMddTHHmmss") + dt.ToString("zzz").Replace(":","");
}
private void button2_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
textBox1.Text = dt.ToString("yyyy-MM-ddTHH:mm:sszzzz");
}
private void button3_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
textBox1.Text = dt.ToString("s");
}
}
}
解説
標準形式のISO8601形式の文字列を作成する場合はDateTime.ToStringで"yyyyMMddTHHmmss"を与えます。タイムゾーンについては"zzz"で表示できますがこの形式では"+09:00"の形式で文字列に変換されるため":"を削除します。
拡張形式の場合はDateTime.ToStringで"yyyy-MM-ddTHH:mm:sszzzz"を与えると出力できます。
また、タイムゾーンの表記が必要なければ、標準の書式指定文字列"s"を指定して出力できます。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。"YYYYMMDDThhmmss+0900"形式のISO8601標準形式の文字列が表示できます。
[button2]をクリックします。"YYYY-MM-DDThh:mm:ss+09:00"形式のISO8601拡張形式の文字列が表示できます。
[button3]をクリックします。標準の"s"書式指定文字列での変換結果の文字列が表示されます。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。