【Unity】UTCからローカル時刻の求め方

2015-08-06

最初 TimeZoneInfo を使って

DateTime utcDate = ...;
DateTime localDate = TimeZoneInfo.ConvertTimeFromUtc(utcDate, TimeZoneInfo.Local);
...

などとやってみてエディタで動いた〜としていたら、AndroidやiOSでは例外が出て動かない。 TimeZoneInfo.Localが取れないらしい

I/Unity   ( 3776): TimeZoneNotFoundException: Exception of type 'System.TimeZoneNotFoundException' was thrown.
I/Unity ( 3776): at System.TimeZoneInfo.get_Local () [0x00000] in <filename unknown>:0
I/Unity ( 3776): at Hoge.Fuga (System.String message, DateTime utcDate) [0x00000] in <filename unknown>:0
...

c# - TimeZone.CurrentTimeZone alternative - Stack Overflowを参考に、以下のようにしてみた:

TimeZone zone = TimeZone.CurrentTimeZone;
TimeSpan offset = zone.GetUtcOffset(DateTime.Now);
DateTime localDate = utcDate + offset;
...