カテゴリ: C# 更新日: 2025/12/03

C#で日時をISO 8601形式に変換する方法を完全解説!初心者向けガイド

C#で日時をISO 8601形式に変換する方法
C#で日時をISO 8601形式に変換する方法

先生と生徒の会話形式で理解しよう

生徒

「C#で日時を国際的な形式で表示したいのですが、どんな方法がありますか?」

先生

「世界中で共通して使われる形式として、ISO 8601形式があります。」

生徒

「ISO 8601って何ですか?難しそうな名前ですね。」

先生

「大丈夫です。ISO 8601は、年・月・日・時刻を統一した書き方で表す方法です。C#なら簡単に変換できますよ!」

1. ISO 8601形式とは?初心者にわかりやすく説明

1. ISO 8601形式とは?初心者にわかりやすく説明
1. ISO 8601形式とは?初心者にわかりやすく説明

ISO 8601形式とは、世界中のシステムで同じ形式で日時を扱うための国際標準の書き方です。例えば、2025年11月27日 午後3時15分を表すときに、国によって書き方が違うと混乱が生まれます。

日本では「2025/11/27 15:15」ですが、アメリカでは「11/27/2025 3:15PM」と書きます。この違いが原因で、データ交換やシステム連携で誤動作が起きることがあります。

そこで便利なのが、世界共通の書き方であるISO 8601形式です。次のように表記します。

2025-11-27T15:15:00

「T」は日時を区切る合図で、「Z」はUTC(協定世界時)を意味します。この表記方法を理解しておくと、クラウドサービスやデータベースとのやり取りでもよく使われるので、非常に便利です。

2. C#で現在日時をISO 8601形式に変換する基本方法

2. C#で現在日時をISO 8601形式に変換する基本方法
2. C#で現在日時をISO 8601形式に変換する基本方法

C#では、DateTime型の変数に対して、ToStringメソッドを使うことで簡単にISO 8601形式へ変換できます。プログラミング初心者でもすぐに利用できます。


using System;

class Program
{
    static void Main()
    {
        DateTime now = DateTime.Now;
        string iso8601 = now.ToString("yyyy-MM-ddTHH:mm:ss");
        Console.WriteLine(iso8601);
    }
}

実行結果の例:


2025-11-27T15:30:00

3. 世界時刻(UTC)でISO 8601形式に変換する方法

3. 世界時刻(UTC)でISO 8601形式に変換する方法
3. 世界時刻(UTC)でISO 8601形式に変換する方法

サーバー同士の通信やAPI開発では、UTC(協定世界時)を使うことが一般的です。これは国や地域の時間差の影響を受けないためです。


DateTime utcNow = DateTime.UtcNow;
string iso8601Utc = utcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");
Console.WriteLine(iso8601Utc);

実行結果の例:


2025-11-27T06:30:00Z

4. DateTimeOffsetを使ったISO 8601形式の出力方法

4. DateTimeOffsetを使ったISO 8601形式の出力方法
4. DateTimeOffsetを使ったISO 8601形式の出力方法

C#にはDateTimeOffsetという、タイムゾーン情報(時差)を含めた日時型があります。クラウドやデータベースではこれがよく使われます。

例えば、日本の時刻を含めてISO 8601形式で出力したい場合は次のように書きます。


DateTimeOffset nowOffset = DateTimeOffset.Now;
string iso8601Offset = nowOffset.ToString("o"); // "o" はISO8601形式の書式指定子
Console.WriteLine(iso8601Offset);

実行例:


2025-11-27T15:30:00.0000000+09:00

末尾の+09:00は、日本標準時(JST)の時差を示します。世界中どこでも正確な時刻差を伝えられるため、非常に便利です。

5. ToString("o") を覚えておくと便利!即戦力の使い方

5. ToString(
5. ToString("o") を覚えておくと便利!即戦力の使い方

ISO 8601形式は書式を自分で組み合わせても作れますが、実はC#には簡単にこの形式を出力するための特別な書式指定子が用意されています。

ToString("o")は、ISO 8601に完全準拠した日時を出力するための特別な書き方です。これだけで、時差情報も含めた標準形式が得られます。


Console.WriteLine(DateTimeOffset.Now.ToString("o"));

6. ISO 8601形式が使われる代表的な場面

6. ISO 8601形式が使われる代表的な場面
6. ISO 8601形式が使われる代表的な場面

ISO 8601形式は多くのシステムで採用されています。例えば:

  • REST APIでデータ通信を行うとき
  • データベースに日時を保存するとき
  • ログファイルに正確な時刻を記録するとき
  • ExcelやCSVファイルとデータ交換するとき
  • クラウドシステムと連携するとき

プログラミングを学ぶ上で、ISO 8601を扱えることは非常に重要です。初心者でも必ず理解しておくべき技術と言えます。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方