libro
www.tuyano.com
初心者のためのC#プログラミング入門

文字列と日時 (3/4)

作成:2013-11-23 10:39
更新:2013-11-23 10:39

■日時の値とDateTime構造体

続いて、日時の値についてです。日時は、「DateTime」という構造体として用意されています。これは以下のようにしてインスタンスを作成します。

●現在の日時を取得
変数 = DateTime.Now;
変数 = DateTime. UtcNow;
変数 = DateTime.Today;
DateTimeに用意されているプロパティです。Nowは現時点のローカルタイム(利用している国の自国)を取得します。UtcNowは現時点の国際標準時の時刻を取得します。またTodayは、今日の午前00:00:00の日時を示すDateTimeを取得します。

●特定の日時を指定して作成
変数 = new DateTime( Tick数 );
変数 = new DateTime( 年 , 月 , 日 );
変数 = new DateTime( 年 , 月 , 日 , 時 , 分 , 秒 );
特定の日時を示すDateTimeインスタンスを生成します。「Tick数」は、0001 年 1 月 1 日午前 00:00:00からの経過時間を100ナノ秒単位で換算したlong値です。年月日時分秒はいずれもint値で指定します。

●特定の要素を取得する
変数 = 《DateTime》.Year;
変数 = 《DateTime》.Month;
変数 = 《DateTime》.Day;
変数 = 《DateTime》.Hour;
変数 = 《DateTime》.Minute;
変数 = 《DateTime》.Second;
変数 = 《DateTime》.Ticks;
DateTimeインスタンスから特定の要素の値だけを取り出すものです。Ticks以外はint値になります。Ticksのみはlong値です。

●テキストとの変換
DateTime 変数 = DateTime.Parse( 文字列 );
string 変数 = 《DateTime》.ToString( 文字列 );
テキストを元にDateTimeを作成したり、DateTimeの日時を特定のフォーマットに従ってテキストとして取り出したりするためのものです。「Parse」は、引数に指定したテキストをDateTimeに変換します。このテキストは、"2001/1/2"というような日時を表す一般的な形式で書かれているものであれば認識します。

また「ToString」は、引数なしで呼び出せば一般的なフォーマットに従ってDateTimeStringに変換しますが、引数がある場合は、それに記述されたパターンに従ってStringを生成します。このパターンは、以下のようなキャラクタを組み合わせて生成します。

y――年
M――月
d――日、曜日。d, ddだと日にち、ddd, ddddとすると曜日。
h――時
m――分
s――秒
t――午前午後の表示

実際の利用例を下に掲載しておきます。2つのDateTimeを作り、それぞれ値を表示しています。とりあえず「インスタンス作成」「各要素の値の取得」「フォーマット」といったものがひと通り使えれば、日時を扱えるようになるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

using System;

namespace MyCLIApp
{
    class Program
    {
        public static void Main(string[] args)
        {
            DateTime d1 = DateTime.Parse("1543年12月6日 01:23:45 AM");
            DateTime d2 = new DateTime(2001,1,1);
            Console.WriteLine(d1.Year + "年" + d1.Month + "月" + d1.Day + "日");
            Console.WriteLine(d2.ToString("yyyy-MM-dd(ddd)"));
            Console.ReadKey(true);
        }
    }
}

※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る