Noda Timeを使用してローカル日時からUTCに変換しています。.NET Noda Timeローカル日付時刻を特定のタイムゾーンのUTCに変換する
static string LocalTimeToUTC(string timeZone, string localDateTime)
{
var pattern = LocalDateTimePattern.CreateWithInvariantCulture("dd/MM/yyyy HH:mm:ss");
LocalDateTime ldt = pattern.Parse(localDateTime).Value;
ZonedDateTime zdt = ldt.InZoneLeniently(DateTimeZoneProviders.Tzdb[timeZone]);
Instant instant = zdt.ToInstant();
ZonedDateTime utc = instant.InUtc();
string output = utc.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
return output;
}
static void Main(string[] args)
{
foreach (DateTime d in myDates)
{
DateTime utcTime = Convert.ToDateTime(LocalTimeToUTC("Europe/Amsterdam", d.ToString()));
Console.WriteLine(utcTime);
}
Console.ReadKey();
}
問題が夏時間である:クロックが後方に1時間になると
は、これは私がこれまで持っているものです。時間がありません。下記の結果をご覧ください。
25/10/2014 19:00:00
25/10/2014 20:00:00
25/10/2014 21:00:00
25/10/2014 22:00:00
25/10/2014 23:00:00
26/10/2014 01:00:00
26/10/2014 02:00:00
ご覧のとおり、26/10/2014 00:00:00は時計の変更のためにありません。
私の質問は、欠けている時間がないようにこれを処理する方法があるということですか?不足している時間を埋める?
ここでは、テキスト解析を行う必要はありません。「LocalDateTime.FromDateTime」はあなたの友人です。 –