タイムゾーン(東部標準時)と日付(2010年1月1日午前11時30分)を使用しており、それをUTC日付(2018-01-01T16:30 :00Z)。元の日付は実際にEastern Daylight Savingsです。したがって、開発者がUTCで変換を行うと、11:30 AMの代わりに12:30 PMになります。私が8/26/2018 11:30 AMをしたら、うまくいきます。私のタイムゾーンは.NET Windows形式です。夏時間を考慮しないDate to UTC
NodaTimeで標準のタイムゾーンからの夏時間の正しいUTCを取得する方法はありますか?
2018-01-01T16:30:00Z = Helper.GetUtcTimeZone("1/1/2018 11:30 AM", "Eastern Standard Time").ToString();
方法
public static Instant GetUtcTimeZone(DateTime dateTime, string timeZone)
{
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZone ?? TimeZoneInfo.Local.StandardName);
if (timeZoneInfo != null)
{
if (dateTime.Kind == DateTimeKind.Unspecified)
{
dateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, timeZoneInfo);
}
}
return Instant.FromDateTimeUtc(dateTime);
}
あなたが与えた最初の日付は* 1月*であることに注意してください。そのため、EDTには入れることはできません。 –