SlideShare a Scribd company logo
夏時間対応始めました。
.NETでどう対応するの?
ホンマに導入するんやったら早くテストしたい
夏時間はタイムゾーン情報に入ってるから
カスタムタイムゾーンを作ってみる
var jst = TimeZoneInfo.FindSystemTimeZoneById(”Tokyo Standard Time");
var delta = new TimeSpan(2,0,0); // 時差は2時間
var rules = new List<TimeZoneInfo.AdjustmentRule>();
// 6月の最初の週末の2時に始まって
var start = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(
new DateTime(1, 1, 1, 2, 0, 0), 6, 1, DayOfWeek.Sunday);
// 8月の最後の週末の2時に終わる
var end = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(
new DateTime(1, 1, 1, 2, 0, 0), 8, 5, DayOfWeek.Sunday);
// 2019 - 2020 年に適用
rules.Add(TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(
new DateTime(2019,1,1), new DateTime(2020,12,31),delta, start, end));
// 標準のJSTをもとに作成
var jstWithDt = TimeZoneInfo.CreateCustomTimeZone(
jst.Id, jst.BaseUtcOffset,
jst.DisplayName, jst.StandardName,
jst.DaylightName, rules.ToArray());
一時間ずつ足していってみる
// 日本時間だと 2019/06/02 00:00:00 の UTC
var utcDateTime = new DateTime(2019, 6, 1, 15, 0, 0, DateTimeKind.Utc);
// UTC の時間をもとにタイムゾーンを指定して、DateTime に変換
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime, jstWithDt)); //2019/06/02 00:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime, jst)); //2019/06/02 00:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(1), jstWithDt)); //2019/06/02 01:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(1), jst)); //2019/06/02 01:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(2), jstWithDt)); //2019/06/02 04:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(2), jst)); //2019/06/02 02:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(3), jstWithDt)); //2019/06/02 05:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(3), jst)); //2019/06/02 03:00:00
一時間ずつ足していってみる
// 日本時間だと 2019/06/02 00:00:00 の UTC
var utcDateTime = new DateTime(2019, 6, 1, 15, 0, 0, DateTimeKind.Utc);
// UTC の時間をもとにタイムゾーンを指定して、DateTime に変換
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime, jstWithDt)); //2019/06/02 00:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime, jst)); //2019/06/02 00:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(1), jstWithDt)); //2019/06/02 01:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(1), jst)); //2019/06/02 01:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(2), jstWithDt)); //2019/06/02 04:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(2), jst)); //2019/06/02 02:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(3), jstWithDt)); //2019/06/02 05:00:00
Console.WriteLine(TimeZoneInfo.ConvertTime(utcDateTime.AddHours(3), jst)); //2019/06/02 03:00:00
いつもの一時間ずつの足しかた
// そもそも UTC なんかで作ってない
var jstDateTime = new DateTime(2019, 6, 2);
// TimeZoneInfo ってなにそれ?美味しいの?
Console.WriteLine(jstDateTime); //2019/06/02 00:00:00
// ただただ足すだけ
Console.WriteLine(jstDateTime.AddHours(1)); //2019/06/02 01:00:00
// ここで勝手に夏時間適用してほしい
Console.WriteLine(jstDateTime.AddHours(2)); //2019/06/02 04:00:00(希望)
// ただただ足すだけ
Console.WriteLine(jstDateTime.AddHours(3)); //2019/06/02 05:00:00
悲報
DateTimeにデフォルトのTimeZoneは指定できない
システム情報から自動で取得される
Windowsでタイムゾーンの指定
Windowsのタイムゾーン情報の場所
Windowsのタイムゾーン情報の場所
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms724253(v=vs.85).aspx https://www.codeproject.com/tips/700884/fixing-daylight-saving-time-of-windows-for-next
夏時間対応始められそう。
賢い人に続きはお願いしたい。。。
ご清聴
ありがとうございました

More Related Content

More from Kazuhide Maruyama

VSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオンVSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオンKazuhide Maruyama
 
Type scriptのいいところ
Type scriptのいいところType scriptのいいところ
Type scriptのいいところKazuhide Maruyama
 
ショートカットの勧め
ショートカットの勧めショートカットの勧め
ショートカットの勧めKazuhide Maruyama
 
Grid application テンプレートを紐解く
Grid application テンプレートを紐解くGrid application テンプレートを紐解く
Grid application テンプレートを紐解くKazuhide Maruyama
 
Developerのdeveloperによるdeveloperのためのmetro designの話
Developerのdeveloperによるdeveloperのためのmetro designの話Developerのdeveloperによるdeveloperのためのmetro designの話
Developerのdeveloperによるdeveloperのためのmetro designの話Kazuhide Maruyama
 

More from Kazuhide Maruyama (6)

What is xaml
What is xamlWhat is xaml
What is xaml
 
VSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオンVSハッカソン TypeScript ハンズオン
VSハッカソン TypeScript ハンズオン
 
Type scriptのいいところ
Type scriptのいいところType scriptのいいところ
Type scriptのいいところ
 
ショートカットの勧め
ショートカットの勧めショートカットの勧め
ショートカットの勧め
 
Grid application テンプレートを紐解く
Grid application テンプレートを紐解くGrid application テンプレートを紐解く
Grid application テンプレートを紐解く
 
Developerのdeveloperによるdeveloperのためのmetro designの話
Developerのdeveloperによるdeveloperのためのmetro designの話Developerのdeveloperによるdeveloperのためのmetro designの話
Developerのdeveloperによるdeveloperのためのmetro designの話
 

Recently uploaded

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 

Recently uploaded (16)

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 

夏時間対応始めました。 - .NET Conf関西 2018 LT