次の方法で共有


TimeZoneInfo.ConvertTimeFromUtc(DateTime, TimeZoneInfo) メソッド

定義

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

public:
 static DateTime ConvertTimeFromUtc(DateTime dateTime, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTimeFromUtc (DateTime dateTime, TimeZoneInfo destinationTimeZone);
static member ConvertTimeFromUtc : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTimeFromUtc (dateTime As DateTime, destinationTimeZone As TimeZoneInfo) As DateTime

パラメーター

dateTime
DateTime

世界協定時刻 (UTC)。

destinationTimeZone
TimeZoneInfo

dateTime の変換先タイム ゾーン。

戻り値

変換先タイム ゾーンでの日付と時刻。 destinationTimeZoneUtc の場合、Kind プロパティは Utc。それ以外の場合、Kind プロパティは Unspecified

例外

dateTimeKind プロパティが Local です。

destinationTimeZonenullです。

次の例では、協定世界時 (UTC) を中部標準時に変換します。

DateTime timeUtc = DateTime.UtcNow;
try
{
   TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
   DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
   Console.WriteLine("The date and time are {0} {1}.", 
                     cstTime, 
                     cstZone.IsDaylightSavingTime(cstTime) ?
                             cstZone.DaylightName : cstZone.StandardName);
}
catch (TimeZoneNotFoundException)
{
   Console.WriteLine("The registry does not define the Central Standard Time zone.");
}                           
catch (InvalidTimeZoneException)
{
   Console.WriteLine("Registry data on the Central Standard Time zone has been corrupted.");
}
let timeUtc = DateTime.UtcNow
try
    let cstZone = TimeZoneInfo.FindSystemTimeZoneById "Central Standard Time"
    let cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone)
    printfn $"The date and time are {cstTime} {if cstZone.IsDaylightSavingTime cstTime then cstZone.DaylightName else cstZone.StandardName}."
with
| :? TimeZoneNotFoundException ->
    printfn "The registry does not define the Central Standard Time zone."
| :? InvalidTimeZoneException ->
    printfn "Registry data on the Central Standard Time zone has been corrupted."
Dim timeUtc As Date = Date.UtcNow
Try
   Dim cstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")
   Dim cstTime As Date = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone)
   Console.WriteLine("The date and time are {0} {1}.", _
                     cstTime, _
                     IIf(cstZone.IsDaylightSavingTime(cstTime), _
                         cstZone.DaylightName, cstZone.StandardName))
Catch e As TimeZoneNotFoundException
   Console.WriteLine("The registry does not define the Central Standard Time zone.")
Catch e As InvalidTimeZoneException
   Console.WriteLine("Registry data on the Central Standard Time zone has been corrupted.")
End Try

注釈

変換を実行するときに、 メソッドは ConvertTimeFromUtc 、タイム ゾーンで有効な調整規則を destinationTimeZone 適用します。

このメソッドの正確な動作は、次の表に Kind 示すように、 パラメーターの プロパティの dateTime 値によって異なります。

DateTime.Kind プロパティ 変換
DateTimeKind.Local をスローします ArgumentException
DateTimeKind.Unspecified または DateTimeKind.Utc 協定世界時 (UTC) から変換します。

dateTime変換によって、 より前またはそれより後DateTime.MinValueDateTime.MaxValueの日付と時刻の値が返される場合、このメソッドはそれぞれ または DateTime.MaxValueを返DateTime.MinValueします。

適用対象

こちらもご覧ください