英語で読む

次の方法で共有


TimeZoneInfo.GetUtcOffset メソッド

定義

特定の日付と時刻について、このタイム ゾーンでの時刻と世界協定時刻 (UTC) とのオフセットまたは差を計算します。

オーバーロード

GetUtcOffset(DateTime)

特定の日付と時刻について、このタイム ゾーンでの時刻と世界協定時刻 (UTC) とのオフセットまたは差を計算します。

GetUtcOffset(DateTimeOffset)

特定の日付と時刻について、このタイム ゾーンでの時刻と世界協定時刻 (UTC) とのオフセットまたは差を計算します。

GetUtcOffset(DateTime)

ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs

特定の日付と時刻について、このタイム ゾーンでの時刻と世界協定時刻 (UTC) とのオフセットまたは差を計算します。

C#
public TimeSpan GetUtcOffset(DateTime dateTime);

パラメーター

dateTime
DateTime

オフセットの計算対象となる日付と時刻。

戻り値

2 つのタイム ゾーンの時差を示すオブジェクト。

次の例は、異なるタイム ゾーンと、異なるプロパティ値を持つ日付値を持Kindつ メソッドの使用方法GetUtcOffset(DateTime)を示しています。

C#
using System;

[assembly:CLSCompliant(true)]
namespace TimeZoneInfoCode
{
   public class TimeOffsets
   {
      public static void Main()
      {
         TimeOffsets timeoff = new TimeOffsets();
         TimeZoneInfo cst = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
   
         timeoff.ShowOffset(new DateTime(2006, 6, 12, 11, 0, 0), TimeZoneInfo.Local);
         timeoff.ShowOffset(new DateTime(2007, 11, 4, 1, 0, 0), TimeZoneInfo.Local);
         timeoff.ShowOffset(new DateTime(2006, 12, 10, 15, 0, 0), TimeZoneInfo.Local);
         timeoff.ShowOffset(new DateTime(2007, 3, 11, 2, 30, 0), TimeZoneInfo.Local);
         timeoff.ShowOffset(DateTime.UtcNow, TimeZoneInfo.Local);
         timeoff.ShowOffset(new DateTime(2006, 6, 12, 11, 0, 0), TimeZoneInfo.Utc);
         timeoff.ShowOffset(new DateTime(2007, 11, 4, 1, 0, 0), TimeZoneInfo.Utc);
         timeoff.ShowOffset(new DateTime(2006, 12, 10, 3, 0, 0), TimeZoneInfo.Utc);
         timeoff.ShowOffset(new DateTime(2007, 3, 11, 2, 30, 0), TimeZoneInfo.Utc);
         timeoff.ShowOffset(DateTime.Now, TimeZoneInfo.Utc);
         timeoff.ShowOffset(new DateTime(2006, 6, 12, 11, 0, 0), cst);
         timeoff.ShowOffset(new DateTime(2007, 11, 4, 1, 0, 0), cst);
         timeoff.ShowOffset(new DateTime(2006, 12, 10, 15, 0, 0), cst);
         timeoff.ShowOffset(new DateTime(2007, 3, 11, 2, 30, 0, 0), cst);
         timeoff.ShowOffset(new DateTime(2007, 11, 14, 00, 00, 00, DateTimeKind.Local), cst);
      }
      
      private void ShowOffset(DateTime time, TimeZoneInfo timeZone)
      {
         DateTime convertedTime = time;  
         TimeSpan offset;
         
         if (time.Kind == DateTimeKind.Local && ! timeZone.Equals(TimeZoneInfo.Local)) 
            convertedTime = TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Local, timeZone);
         else if (time.Kind == DateTimeKind.Utc && ! timeZone.Equals(TimeZoneInfo.Utc)) 
            convertedTime = TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, timeZone);         
   
         offset = timeZone.GetUtcOffset(time);
         if (time == convertedTime)
         {
            Console.WriteLine("{0} {1} ", time, 
                              timeZone.IsDaylightSavingTime(time) ? timeZone.DaylightName : timeZone.StandardName);
            Console.WriteLine("   It differs from UTC by {0} hours, {1} minutes.", 
                               offset.Hours, 
                               offset.Minutes);
         }
         else
         {
            Console.WriteLine("{0} {1} ", time, 
                              time.Kind == DateTimeKind.Utc ? "UTC" :  TimeZoneInfo.Local.Id);       
            Console.WriteLine("   converts to {0} {1}.", 
                              convertedTime, 
                              timeZone.Id);
            Console.WriteLine("   It differs from UTC by {0} hours, {1} minutes.", 
                              offset.Hours, offset.Minutes);  
         }
         Console.WriteLine();                                             
      }
   }
}
// The example produces the following output:
//
//       6/12/2006 11:00:00 AM Pacific Daylight Time 
//          It differs from UTC by -7 hours, 0 minutes.
//       
//       11/4/2007 1:00:00 AM Pacific Standard Time 
//          It differs from UTC by -8 hours, 0 minutes.
//       
//       12/10/2006 3:00:00 PM Pacific Standard Time 
//          It differs from UTC by -8 hours, 0 minutes.
//       
//       3/11/2007 2:30:00 AM Pacific Standard Time 
//          It differs from UTC by -8 hours, 0 minutes.
//       
//       2/2/2007 8:35:46 PM UTC 
//          converts to 2/2/2007 12:35:46 PM Pacific Standard Time.
//          It differs from UTC by -8 hours, 0 minutes.
//       
//       6/12/2006 11:00:00 AM UTC 
//          It differs from UTC by 0 hours, 0 minutes.
//       
//       11/4/2007 1:00:00 AM UTC 
//          It differs from UTC by 0 hours, 0 minutes.
//       
//       12/10/2006 3:00:00 AM UTC 
//          It differs from UTC by 0 hours, 0 minutes.
//       
//       3/11/2007 2:30:00 AM UTC 
//          It differs from UTC by 0 hours, 0 minutes.
//       
//       2/2/2007 12:35:46 PM Pacific Standard Time 
//          converts to 2/2/2007 8:35:46 PM UTC.
//          It differs from UTC by 0 hours, 0 minutes.
//       
//       6/12/2006 11:00:00 AM Central Daylight Time 
//          It differs from UTC by -5 hours, 0 minutes.
//       
//       11/4/2007 1:00:00 AM Central Standard Time 
//          It differs from UTC by -6 hours, 0 minutes.
//       
//       12/10/2006 3:00:00 PM Central Standard Time 
//          It differs from UTC by -6 hours, 0 minutes.
//       
//       3/11/2007 2:30:00 AM Central Standard Time 
//          It differs from UTC by -6 hours, 0 minutes.
//       
//       11/14/2007 12:00:00 AM Pacific Standard Time 
//          converts to 11/14/2007 2:00:00 AM Central Standard Time.
//          It differs from UTC by -6 hours, 0 minutes.

注釈

返される期間には、調整規則が現在のタイム ゾーンに適用されるため、相違点が含まれます。 これは、協定世界時 (UTC) とタイム ゾーンの標準時刻の差を返す プロパティとは BaseUtcOffset 異なり、調整規則を考慮しません。

パラメーターの Kind プロパティがdateTimeタイム ゾーン オブジェクトに対応していない場合、このメソッドは結果を返す前に必要な変換を実行します。 たとえば、 プロパティが ですが、タイム ゾーン オブジェクトがDateTimeKind.Localローカル タイム ゾーンではない場合に発生する可能性Kindがあります。 があいまいな場合、または変換された時刻があいまいな場合 dateTime 、このメソッドはあいまいな時刻を標準時刻として解釈します。 が無効な場合 dateTime 、このメソッドは UTC とタイム ゾーンの標準時刻の差を反映する オブジェクトを返 TimeSpan します。

メソッドの TimeZoneInfo.GetUtcOffset(DateTime) 操作は、 クラスの GetUtcOffsetTimeZone メソッドと似ています。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetUtcOffset(DateTimeOffset)

ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs

特定の日付と時刻について、このタイム ゾーンでの時刻と世界協定時刻 (UTC) とのオフセットまたは差を計算します。

C#
public TimeSpan GetUtcOffset(DateTimeOffset dateTimeOffset);

パラメーター

dateTimeOffset
DateTimeOffset

オフセットの計算対象となる日付と時刻。

戻り値

世界協定時刻 (UTC) と現在のタイム ゾーンとの時差を示すオブジェクト。

注釈

返される期間には、調整規則が現在のタイム ゾーンに適用されるため、相違点が含まれます。 これは、協定世界時 (UTC) とタイム ゾーンの標準時刻の差を返す プロパティとは BaseUtcOffset 異なり、調整規則を考慮しません。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0