【Unity】C#で時刻取得の知識

f:id:nuakam:20180924103512j:plain

C#で時刻取得に関する諸々

アプリ内で時刻を取得したい。
C#側で処理ができるみたい。

現在時刻の取得

DateTime.now

で端末時刻を取得できる。



例えば

DateTime Now = new DateTime.now

スマホアプリの場合、端末時刻を取得する。
端末の時刻をずらしていたら取得できる時刻もずれている。



取得した時刻を.Tostring()でstring変換するなり,int.parce()でint変換するなり, いろいろ処理。

DateTime型は読み取り専用のため代入処理が大事なのだ。

世界標準時の取得

多分こっちのほうがよく使う。

DateTime.UtcNow

世界標準時は DateTime.UtcNowで受け取れる。

UnixDateTime

Open Weather Mapを代表に時刻をweb上から受け取るとdt(UnixDateTime)形式のものも多い。
これは世界標準時1970年1月1日0時0分0秒からXX秒経過したよーって形式。

なぜこんなものが存在するのか。
これを使うメリットは何なのかは良くわからない_(:3」∠)_

UnixDateTimeとDateTimeの変換


UnixDateTimeからDateTimeへ変換

public DateTime ToDatetime(string _unixTime){

    DateTime ReturnTime = new DateTime(1970, 1, 1, 0, 0, 0, System.DateTimeKind.Utc);
    ReturnTime = ReturnTime.AddSeconds(double.Parse( _UnixTime));
}


DateTimeからUnixDateTimeへ変換

public  double ToUnixDateTime(DateTime dateTime){

    DateTime UnixTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
     return (double)(dateTime - UnixTime).TotalSeconds;
}