エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DateTime.ToUniversalTime メソッド

2013/12/12

現在の DateTime オブジェクトの値を世界協定時刻 (UTC) に変換します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public DateTime ToUniversalTime()

戻り値

型: System.DateTime
Kind プロパティが Utc で、以下のいずれかの値を持つオブジェクト。現在の DateTime 値と等しい UTC 時刻が格納されますが、変換後の値が DateTime オブジェクトの表現可能な範囲を超える場合は DateTime.MaxValue、変換後の値が DateTime オブジェクトで表現可能な範囲を下回る場合は DateTime.MinValue が格納されます。

世界協定時刻 (UTC) は、現地時刻から UTC オフセットを差し引いた時刻です。また、変換時には、現在の DateTime オブジェクトが表す時刻に適用される夏時間も考慮されます。

重要: 重要:

ToUniversalTime メソッドでは、現地時刻から UTC への変換時に現在の調整規則のみが認識されます。その結果、現在の調整規則が実施される前の期間を変換すると、現地時刻と UTC との差が正確には反映されないことがあります。

ToUniversalTime メソッドから返される値は、現在の DateTime オブジェクトの Kind プロパティによって決定されます。Kind プロパティの値によって、実行結果にどのような違いが生じるかを次の表に示します。

Kind

[結果]

Utc

変換は実行されません。

Local

現在の DateTime オブジェクトが UTC に変換されます。

Unspecified

現在の DateTime オブジェクトが現地時刻ベースであるものと見なされ、KindLocal の場合と同じ変換結果になります。

メモメモ:

ToUniversalTime メソッドは、DateTime の値を現地時刻から UTC に変換します。UTC からのオフセットが既知の時刻を変換するには、ToUniversalTime メソッドを使用します。

日付と時刻のインスタンスの値があいまいな時刻である場合、このメソッドはそれが標準時だと想定します (あいまいな時刻とは、ローカル タイム ゾーンの標準時または夏時間に割り当てることができる時刻です)。日付と時刻のインスタンスの値が無効な時刻である場合、このメソッドは、単純に現地時刻からローカル タイム ゾーンの UTC オフセットを差し引いて、UTC を返します (無効な時刻とは、夏時間調整規則を適用したために存在しなくなる時刻のことです)。

呼び出し時の注意

ToUniversalTime メソッドは、現地時刻を UTC に変換するためにときどき使用され、その後に ToLocalTime メソッドを呼び出すことにより UTC を復元するために使用されます。ただし、元の時刻がローカル タイム ゾーンで無効な時刻を表している場合は、2 つのローカル時間の値は一致しません。詳細情報と例については、ToLocalTime メソッドを参照してください。

ToUniversalTime メソッドの例を次に示します。


outputBlock.Text += "Enter a date and time." + "\n";
string strDateTime = System.Console.ReadLine();

System.DateTime localDateTime;
try
{
   localDateTime = System.DateTime.Parse(strDateTime);
}
catch (System.FormatException)
{
   outputBlock.Text += "Invalid format." + "\n";
   return;
}

System.DateTime univDateTime = localDateTime.ToUniversalTime();

outputBlock.Text += String.Format("{0} local time is {1} universal time.",
                   localDateTime,
                   univDateTime) + "\n";

outputBlock.Text += "Enter a date and time in universal time." + "\n";
strDateTime = System.Console.ReadLine();

try
{
   univDateTime = System.DateTime.Parse(strDateTime);
}
catch (System.FormatException)
{
   outputBlock.Text += "Invalid format." + "\n";
   return;
}

localDateTime = univDateTime.ToLocalTime();

outputBlock.Text += String.Format("{0} universal time is {1} local time.",
                   univDateTime,
                   localDateTime) + "\n";


SpecifyKind メソッドを使用して、Kind プロパティが ToLocalTimeToUniversalTime の 2 つの変換メソッドに与える影響を示す例を次に示します。


// This code example demonstrates the DateTime Kind, Now, and
// UtcNow properties, and the SpecifyKind(), ToLocalTime(), 
// and ToUniversalTime() methods.

using System;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Get the date and time for the current moment, adjusted 
      // to the local time zone.

      DateTime saveNow = DateTime.Now;

      // Get the date and time for the current moment expressed 
      // as coordinated universal time (UTC).

      DateTime saveUtcNow = DateTime.UtcNow;
      DateTime myDt;

      // Display the value and Kind property of the current moment 
      // expressed as UTC and local time.

      DisplayNow(outputBlock, "UtcNow: ..........", saveUtcNow);
      DisplayNow(outputBlock, "Now: .............", saveNow);
      outputBlock.Text += "\n";

      // Change the Kind property of the current moment to 
      // DateTimeKind.Utc and display the result.

      myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);
      Display(outputBlock, "Utc: .............", myDt);

      // Change the Kind property of the current moment to 
      // DateTimeKind.Local and display the result.

      myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);
      Display(outputBlock, "Local: ...........", myDt);

      // Change the Kind property of the current moment to 
      // DateTimeKind.Unspecified and display the result.

      myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
      Display(outputBlock, "Unspecified: .....", myDt);
   }

   // Display the value and Kind property of a DateTime structure, the 
   // DateTime structure converted to local time, and the DateTime 
   // structure converted to universal time. 

   public static string datePatt = @"M/d/yyyy hh:mm:ss tt";
   public static void Display(System.Windows.Controls.TextBlock outputBlock, string title, DateTime inputDt)
   {
      DateTime dispDt = inputDt;
      string dtString;

      // Display the original DateTime.

      dtString = dispDt.ToString(datePatt);
      outputBlock.Text += String.Format("{0} {1}, Kind = {2}",
                        title, dtString, dispDt.Kind) + "\n";

      // Convert inputDt to local time and display the result. 
      // If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
      // If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
      // If inputDt.Kind is DateTimeKind.Unspecified, the conversion is 
      // performed as if inputDt was universal time.

      dispDt = inputDt.ToLocalTime();
      dtString = dispDt.ToString(datePatt);
      outputBlock.Text += String.Format("  ToLocalTime:     {0}, Kind = {1}",
                        dtString, dispDt.Kind) + "\n";

      // Convert inputDt to universal time and display the result. 
      // If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
      // If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
      // If inputDt.Kind is DateTimeKind.Unspecified, the conversion is 
      // performed as if inputDt was local time.

      dispDt = inputDt.ToUniversalTime();
      dtString = dispDt.ToString(datePatt);
      outputBlock.Text += String.Format("  ToUniversalTime: {0}, Kind = {1}",
                        dtString, dispDt.Kind) + "\n";
      outputBlock.Text += "\n";
   }

   // Display the value and Kind property for DateTime.Now and DateTime.UtcNow.

   public static void DisplayNow(System.Windows.Controls.TextBlock outputBlock, string title, DateTime inputDt)
   {
      string dtString = inputDt.ToString(datePatt);
      outputBlock.Text += String.Format("{0} {1}, Kind = {2}",
                        title, dtString, inputDt.Kind) + "\n";
   }
}

/*
This code example produces the following results:

UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
Now: ............. 5/6/2005 02:34:42 PM, Kind = Local

Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
  ToLocalTime:     5/6/2005 07:34:42 AM, Kind = Local
  ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc

Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
  ToLocalTime:     5/6/2005 02:34:42 PM, Kind = Local
  ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc

Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
  ToLocalTime:     5/6/2005 07:34:42 AM, Kind = Local
  ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc

*/


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft