英語で読む

次の方法で共有


TimeZoneInfo.ConvertTimeToUtc メソッド

定義

日付と時刻を世界協定時刻 (UTC) に変換します。

オーバーロード

ConvertTimeToUtc(DateTime)

指定の日付と時刻を世界協定時刻 (UTC) に変換します。

ConvertTimeToUtc(DateTime, TimeZoneInfo)

指定されたタイム ゾーンの時刻を世界協定時刻 (UTC) に変換します。

ConvertTimeToUtc(DateTime)

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

指定の日付と時刻を世界協定時刻 (UTC) に変換します。

C#
public static DateTime ConvertTimeToUtc (DateTime dateTime);

パラメーター

dateTime
DateTime

変換する日付と時刻。

戻り値

dateTime パラメーターに対応する世界協定時刻 (UTC)。 DateTime 値の Kind プロパティは、常に Utc に設定されます。

例外

TimeZoneInfo.Local.IsInvalidDateTime( dateTime )true を返します。

次の例は、プロパティDateTimeKind.Utcが 、DateTimeKind.Local、および DateTimeKind.Unspecifiedである時刻値Kindの変換をそれぞれ示しています。 また、あいまいで無効な時刻の変換も示しています。

C#
DateTime datNowLocal = DateTime.Now;
Console.WriteLine("Converting {0}, Kind {1}:", datNowLocal, datNowLocal.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNowLocal), TimeZoneInfo.ConvertTimeToUtc(datNowLocal).Kind);
Console.WriteLine();

DateTime datNowUtc = DateTime.UtcNow;
Console.WriteLine("Converting {0}, Kind {1}", datNowUtc, datNowUtc.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNowUtc), TimeZoneInfo.ConvertTimeToUtc(datNowUtc).Kind);
Console.WriteLine();

DateTime datNow = new DateTime(2007, 10, 26, 13, 32, 00);
Console.WriteLine("Converting {0}, Kind {1}", datNow, datNow.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNow), TimeZoneInfo.ConvertTimeToUtc(datNow).Kind);
Console.WriteLine();

DateTime datAmbiguous = new DateTime(2007, 11, 4, 1, 30, 00);    
Console.WriteLine("Converting {0}, Kind {1}, Ambiguous {2}", datAmbiguous, datAmbiguous.Kind, TimeZoneInfo.Local.IsAmbiguousTime(datAmbiguous));
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datAmbiguous), TimeZoneInfo.ConvertTimeToUtc(datAmbiguous).Kind);
Console.WriteLine();

DateTime datInvalid = new DateTime(2007, 3, 11, 02, 30, 00);    
Console.WriteLine("Converting {0}, Kind {1}, Invalid {2}", datInvalid, datInvalid.Kind, TimeZoneInfo.Local.IsInvalidTime(datInvalid));
try
{
   Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datInvalid), TimeZoneInfo.ConvertTimeToUtc(datInvalid).Kind);
}
catch (ArgumentException e)
{   
   Console.WriteLine("   {0}: Cannot convert {1} to UTC.", e.GetType().Name, datInvalid);
}
Console.WriteLine();

DateTime datNearMax = new DateTime(9999, 12, 31, 22, 00, 00);
Console.WriteLine("Converting {0}, Kind {1}", datNearMax, datNearMax.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNearMax), TimeZoneInfo.ConvertTimeToUtc(datNearMax).Kind);
Console.WriteLine();
//
// This example produces the following output if the local time zone 
// is Pacific Standard Time:
//
//    Converting 8/31/2007 2:26:28 PM, Kind Local:
//       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
//    
//    Converting 8/31/2007 9:26:28 PM, Kind Utc
//       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
//    
//    Converting 10/26/2007 1:32:00 PM, Kind Unspecified
//       ConvertTimeToUtc: 10/26/2007 8:32:00 PM, Kind Utc
//    
//    Converting 11/4/2007 1:30:00 AM, Kind Unspecified, Ambiguous True
//       ConvertTimeToUtc: 11/4/2007 9:30:00 AM, Kind Utc
//    
//    Converting 3/11/2007 2:30:00 AM, Kind Unspecified, Invalid True
//       ArgumentException: Cannot convert 3/11/2007 2:30:00 AM to UTC.
//    
//    Converting 12/31/9999 10:00:00 PM, Kind Unspecified
//       ConvertTimeToUtc: 12/31/9999 11:59:59 PM, Kind Utc
//

注釈

実行される正確な変換は、次の表に Kind 示すように、 パラメーターの プロパティの dateTime 値によって異なります。

DateTime.Kind プロパティ 変換
DateTimeKind.Local 現地時刻から協定世界時 (UTC) に変換します。
DateTimeKind.Unspecified dateTimeは現地時刻であり、現地時刻から UTC に変換されると仮定します。
DateTimeKind.Utc 変更せずにを返します dateTime

があいまいな現地時刻に対応する場合 dateTime 、このメソッドは標準の現地時刻であると見なします。 が無効なローカル時刻に対応する場合 dateTime 、 メソッドは を ArgumentExceptionスローします。

注意

現在のコンピューターのローカル タイム ゾーンに複数の調整規則が含まれている場合、メソッドのConvertTimeToUtcこのオーバーロードは、 メソッドと DateTime.ToUniversalTime メソッドとは異なる結果をTimeZone.ToUniversalTime返すことができます。 TimeZone.ToUniversalTime 日付範囲内にあるかどうかにかかわらず dateTime 、常に現在の調整ルールをタイム ゾーン変換に適用します。 また、.NET Framework 3.5 でを実行する場合は、DateTime.ToUniversalTime日付範囲内にあるかどうかにかかわらずdateTime、タイム ゾーン変換にも現在の調整規則が適用されます。

に相当する dateTime UTC が よりも前DateTime.MinValueDateTime.MaxValue場合、このメソッドはそれぞれ または MaxValueを返MinValueします。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 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 2.0, 2.1

ConvertTimeToUtc(DateTime, TimeZoneInfo)

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

指定されたタイム ゾーンの時刻を世界協定時刻 (UTC) に変換します。

C#
public static DateTime ConvertTimeToUtc (DateTime dateTime, TimeZoneInfo sourceTimeZone);

パラメーター

dateTime
DateTime

変換する日付と時刻。

sourceTimeZone
TimeZoneInfo

dateTime のタイム ゾーン。

戻り値

dateTime パラメーターに対応する世界協定時刻 (UTC)。 DateTime オブジェクトの Kind プロパティは、常に Utc に設定されます。

例外

dateTime. KindUtc で、 sourceTimeZone が と等しくありません Utc

または

dateTime. KindLocal で、 sourceTimeZone が と等しくありません Local

- または -

sourceTimeZone .IsInvalidDateTime( dateTime )true を返します。

sourceTimeZonenullです。

次の例では、ローカル システムから現在の日付を取得し、協定世界時 (UTC) に変換し、それを東京標準時に変換し、最後に東京標準時から UTC に変換します。 2 つの UTC 時刻は同じであることに注意してください。

C#
using System;

public class Example
{
   public static void Main()
   {
      // Get time in local time zone 
      DateTime thisTime = DateTime.Now;
      Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ?
                        TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local));
      // Get Tokyo Standard Time zone
      TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
      DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);      
      Console.WriteLine("Time in {0} zone: {1}", tst.IsDaylightSavingTime(tstTime) ?
                        tst.DaylightName : tst.StandardName, tstTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));
   }
}
// The example displays output like the following when run on a system in the
// U.S. Pacific Standard Time zone:
//       Time in Pacific Standard Time zone: 12/6/2013 10:57:51 AM
//          UTC Time: 12/6/2013 6:57:51 PM
//       Time in Tokyo Standard Time zone: 12/7/2013 3:57:51 AM
//          UTC Time: 12/6/2013 6:57:51 PM

注釈

パラメーターの プロパティが KinddateTime と等しく、 パラメーターが sourceTimeZone と等DateTimeKind.UtcしいTimeZoneInfo.Utc場合、このメソッドは変換を実行せずに を返dateTimeします。

があいまいな時刻に対応する場合 dateTime 、このメソッドはソース タイム ゾーンの標準時刻であると想定します。 が無効な時刻に対応する場合 dateTime 、このメソッドは を ArgumentExceptionスローします。

の協定世界時 (UTC) dateTime が それより前DateTime.MinValueDateTime.MaxValue場合、このメソッドはそれぞれ または MaxValueを返MinValueします。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 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 2.0, 2.1