TimeZone.ToLocalTime 方法
返回对应于指定协调通用时间 (UTC) 的本地时间。
**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Overridable Function ToLocalTime ( _
time As DateTime _
) As DateTime
用法
Dim instance As TimeZone
Dim time As DateTime
Dim returnValue As DateTime
returnValue = instance.ToLocalTime(time)
public virtual DateTime ToLocalTime (
DateTime time
)
public:
virtual DateTime ToLocalTime (
DateTime time
)
public DateTime ToLocalTime (
DateTime time
)
public function ToLocalTime (
time : DateTime
) : DateTime
参数
- time
UTC 时间。
返回值
一个 DateTime 实例,其值为对应于 time 的本地时间。
备注
协调通用时间 (UTC) 以前称为格林尼治标准时间 (GMT)。本地时间为所使用计算机上的日期和时间。偏移量为本地时间与 GMT 之间的差异。即:
本地时间 = UTC + 偏移量
示例
下面的代码示例使用 ToLocalTime 方法,返回与几个协调通用时间 (UTC) 相对应的本地时间。
' Example of the TimeZone.ToLocalTime( DateTime ) and
' TimeZone.GetUtcOffset( DateTime ) methods.
Imports System
Imports Microsoft.VisualBasic
Module UTCTimeDemo
Sub Main( )
Const headFmt As String = "{0,-20}{1,-20}{2,-12}{3}"
' Get the local time zone and a base Coordinated Universal
' Time (UTC).
Dim localZone As TimeZone = TimeZone.CurrentTimeZone
Dim baseUTC As DateTime = new DateTime( 2000, 1, 1 )
Console.WriteLine( "This example of " & vbCrLf & _
" TimeZone.ToLocalTime( DateTime ) and" & vbCrLf & _
" TimeZone.GetUtcOffset( DateTime ) " & vbCrLf & _
"generates the following output, which varies " & _
"depending on the time zone " & vbCrLf & "in which " & _
"it is run. The example creates several Coordinated " & _
"Universal " & vbCrLf & "Times (UTC), displays the " & _
"corresponding local times and UTC offsets, " & _
vbCrLf & "and shows if the times occur in daylight " & _
"saving time (DST)." & vbCrLf )
Console.WriteLine( "Local time: {0}" & vbCrLf, _
localZone.StandardName )
Console.WriteLine( headFmt, "UTC", "Local Time", _
" Offset", "DST?" )
Console.WriteLine( headFmt, "---", "----------", _
" ------", "----" )
' Generate several UTC times.
Dim loopX As Integer
For loopX = 0 to 10
' Calculate the local time and UTC offset.
Dim localTime As DateTime = _
localZone.ToLocalTime( baseUTC )
Dim localOffset As TimeSpan = _
localZone.GetUtcOffset( localTime )
Console.WriteLine( "{0,-20:yyyy-MM-dd HH:mm}" & _
"{1,-20:yyyy-MM-dd HH:mm}{2,-12}{3}", _
baseUTC, localTime, localOffset, _
localZone.IsDaylightSavingTime( localTime ) )
' Advance to another UTC.
baseUTC = baseUTC.AddDays( 155.55 )
Next loopX
End Sub
End Module
' This example of
' TimeZone.ToLocalTime( DateTime ) and
' TimeZone.GetUtcOffset( DateTime )
' generates the following output, which varies depending on the time zone
' in which it is run. The example creates several Coordinated Universal
' Times (UTC), displays the corresponding local times and UTC offsets,
' and shows if the times occur in daylight saving time (DST).
'
' Local time: Pacific Standard Time
'
' UTC Local Time Offset DST?
' --- ---------- ------ ----
' 2000-01-01 00:00 1999-12-31 16:00 -08:00:00 False
' 2000-06-04 13:12 2000-06-04 06:12 -07:00:00 True
' 2000-11-07 02:24 2000-11-06 18:24 -08:00:00 False
' 2001-04-11 15:36 2001-04-11 08:36 -07:00:00 True
' 2001-09-14 04:48 2001-09-13 21:48 -07:00:00 True
' 2002-02-16 18:00 2002-02-16 10:00 -08:00:00 False
' 2002-07-22 07:12 2002-07-22 00:12 -07:00:00 True
' 2002-12-24 20:24 2002-12-24 12:24 -08:00:00 False
' 2003-05-29 09:36 2003-05-29 02:36 -07:00:00 True
' 2003-10-31 22:48 2003-10-31 14:48 -08:00:00 False
' 2004-04-04 12:00 2004-04-04 05:00 -07:00:00 True
// Example of the TimeZone.ToLocalTime( DateTime ) and
// TimeZone.GetUtcOffset( DateTime ) methods.
using System;
class UTCTimeDemo
{
static void Main( )
{
const string headFmt = "{0,-20}{1,-20}{2,-12}{3}";
// Get the local time zone and a base Coordinated Universal
// Time (UTC).
TimeZone localZone = TimeZone.CurrentTimeZone;
DateTime baseUTC = new DateTime( 2000, 1, 1 );
Console.WriteLine( "This example of \n" +
" TimeZone.ToLocalTime( DateTime ) and\n" +
" TimeZone.GetUtcOffset( DateTime ) \ngenerates the " +
"following output, which varies depending on the time " +
"zone \nin which it is run. The example creates several " +
"Coordinated Universal \nTimes (UTC), displays the " +
"corresponding local times and UTC offsets, \nand shows " +
"if the times occur in daylight saving time (DST)." );
Console.WriteLine( "\nLocal time: {0}\n",
localZone.StandardName );
Console.WriteLine( headFmt, "UTC", "Local Time",
" Offset", "DST?" );
Console.WriteLine( headFmt, "---", "----------",
" ------", "----" );
// Generate several UTC times.
for( int loopX = 0; loopX <= 10; loopX++ )
{
// Calculate the local time and UTC offset.
DateTime localTime = localZone.ToLocalTime( baseUTC );
TimeSpan localOffset =
localZone.GetUtcOffset( localTime );
Console.WriteLine( "{0,-20:yyyy-MM-dd HH:mm}" +
"{1,-20:yyyy-MM-dd HH:mm}{2,-12}{3}",
baseUTC, localTime, localOffset,
localZone.IsDaylightSavingTime( localTime ) );
// Advance to another UTC.
baseUTC = baseUTC.AddDays( 155.55 );
}
}
}
/*
This example of
TimeZone.ToLocalTime( DateTime ) and
TimeZone.GetUtcOffset( DateTime )
generates the following output, which varies depending on the time zone
in which it is run. The example creates several Coordinated Universal
Times (UTC), displays the corresponding local times and UTC offsets,
and shows if the times occur in daylight saving time (DST).
Local time: Pacific Standard Time
UTC Local Time Offset DST?
--- ---------- ------ ----
2000-01-01 00:00 1999-12-31 16:00 -08:00:00 False
2000-06-04 13:12 2000-06-04 06:12 -07:00:00 True
2000-11-07 02:24 2000-11-06 18:24 -08:00:00 False
2001-04-11 15:36 2001-04-11 08:36 -07:00:00 True
2001-09-14 04:48 2001-09-13 21:48 -07:00:00 True
2002-02-16 18:00 2002-02-16 10:00 -08:00:00 False
2002-07-22 07:12 2002-07-22 00:12 -07:00:00 True
2002-12-24 20:24 2002-12-24 12:24 -08:00:00 False
2003-05-29 09:36 2003-05-29 02:36 -07:00:00 True
2003-10-31 22:48 2003-10-31 14:48 -08:00:00 False
2004-04-04 12:00 2004-04-04 05:00 -07:00:00 True
*/
// Example of the TimeZone::ToLocalTime( DateTime ) and
// TimeZone::GetUtcOffset( DateTime ) methods.
using namespace System;
int main()
{
String^ headFmt = "{0,-20}{1,-20}{2,-12}{3}";
// Get the local time zone and a base Coordinated Universal
// Time (UTC).
TimeZone^ localZone = TimeZone::CurrentTimeZone;
DateTime baseUTC = DateTime(2000,1,1);
Console::WriteLine( "This example of \n"
" TimeZone::ToLocalTime( DateTime ) and\n"
" TimeZone::GetUtcOffset( DateTime ) \ngenerates the "
"following output, which varies depending on the time "
"zone \nin which it is run. The example creates several "
"Coordinated Universal \nTimes (UTC), displays the "
"corresponding local times and UTC offsets, \nand shows "
"if the times occur in daylight saving time (DST)." );
Console::WriteLine( "\nLocal time: {0}\n", localZone->StandardName );
Console::WriteLine( headFmt, "UTC", "Local Time", " Offset", "DST?" );
Console::WriteLine( headFmt, "---", "----------", " ------", "----" );
// Generate several UTC times.
for ( int loopX = 0; loopX <= 10; loopX++ )
{
// Calculate the local time and UTC offset.
DateTime localTime = localZone->ToLocalTime( baseUTC );
TimeSpan localOffset = localZone->GetUtcOffset( localTime );
Console::WriteLine( "{0,-20:yyyy-MM-dd HH:mm}"
"{1,-20:yyyy-MM-dd HH:mm}{2,-12}{3}", baseUTC, localTime, localOffset, localZone->IsDaylightSavingTime( localTime ) );
// Advance to another UTC.
baseUTC = baseUTC.AddDays( 155.55 );
}
}
/*
This example of
TimeZone::ToLocalTime( DateTime ) and
TimeZone::GetUtcOffset( DateTime )
generates the following output, which varies depending on the time zone
in which it is run. The example creates several Coordinated Universal
Times (UTC), displays the corresponding local times and UTC offsets,
and shows if the times occur in daylight saving time (DST).
Local time: Pacific Standard Time
UTC Local Time Offset DST?
--- ---------- ------ ----
2000-01-01 00:00 1999-12-31 16:00 -08:00:00 False
2000-06-04 13:12 2000-06-04 06:12 -07:00:00 True
2000-11-07 02:24 2000-11-06 18:24 -08:00:00 False
2001-04-11 15:36 2001-04-11 08:36 -07:00:00 True
2001-09-14 04:48 2001-09-13 21:48 -07:00:00 True
2002-02-16 18:00 2002-02-16 10:00 -08:00:00 False
2002-07-22 07:12 2002-07-22 00:12 -07:00:00 True
2002-12-24 20:24 2002-12-24 12:24 -08:00:00 False
2003-05-29 09:36 2003-05-29 02:36 -07:00:00 True
2003-10-31 22:48 2003-10-31 14:48 -08:00:00 False
2004-04-04 12:00 2004-04-04 05:00 -07:00:00 True
*/
// Example of the TimeZone.ToLocalTime( DateTime ) and
// TimeZone.GetUtcOffset( DateTime ) methods.
import System.*;
class UTCTimeDemo
{
public static void main(String[] args)
{
final String headFmt = "{0,-20}{1,-20}{2,-12}{3}";
// Get the local time zone and a base Coordinated Universal
// Time (UTC).
TimeZone localZone = TimeZone.get_CurrentTimeZone();
DateTime baseUTC = new DateTime(2000, 1, 1);
Console.WriteLine(("This example of \n"
+ "TimeZone.ToLocalTime( DateTime ) and\n"
+ " TimeZone.GetUtcOffset( DateTime ) \ngenerates the "
+ "following output, which varies depending on the time "
+ "zone \nin which it is run. The example creates several "
+ "Coordinated Universal \nTimes (UTC), displays the "
+ "corresponding local times and UTC offsets, \nand shows "
+ "if the times occur in daylight saving time (DST)."));
Console.WriteLine("\nLocal time: {0}\n",localZone.get_StandardName());
Console.WriteLine(headFmt, new Object[] { "UTC", "Local Time",
" Offset","DST?" });
Console.WriteLine(headFmt, new Object[] { "---", "----------",
" ------", "----" });
// Generate several UTC times.
for (int loopX = 0; loopX <= 10; loopX++) {
// Calculate the local time and UTC offset.
DateTime localTime = localZone.ToLocalTime(baseUTC);
TimeSpan localOffset = localZone.GetUtcOffset(localTime);
Console.WriteLine("{0,-20:yyyy-MM-dd HH:mm}"
+ "{1,-20:yyyy-MM-dd HH:mm}{2,-12}{3}",
new Object[] {baseUTC, localTime, localOffset,
(System.Boolean)localZone.IsDaylightSavingTime(localTime) });
// Advance to another UTC.
baseUTC = baseUTC.AddDays(155.55);
}
} //main
} //UTCTimeDemo
/*
This example of
TimeZone.ToLocalTime( DateTime ) and
TimeZone.GetUtcOffset( DateTime )
generates the following output, which varies depending on the time zone
in which it is run. The example creates several Coordinated Universal
Times (UTC), displays the corresponding local times and UTC offsets,
and shows if the times occur in daylight saving time (DST).
Local time: Pacific Standard Time
UTC Local Time Offset DST?
--- ---------- ------ ----
2000-01-01 00:00 1999-12-31 16:00 -08:00:00 False
2000-06-04 13:12 2000-06-04 06:12 -07:00:00 True
2000-11-07 02:24 2000-11-06 18:24 -08:00:00 False
2001-04-11 15:36 2001-04-11 08:36 -07:00:00 True
2001-09-14 04:48 2001-09-13 21:48 -07:00:00 True
2002-02-16 18:00 2002-02-16 10:00 -08:00:00 False
2002-07-22 07:12 2002-07-22 00:12 -07:00:00 True
2002-12-24 20:24 2002-12-24 12:24 -08:00:00 False
2003-05-29 09:36 2003-05-29 02:36 -07:00:00 True
2003-10-31 22:48 2003-10-31 14:48 -08:00:00 False
2004-04-04 12:00 2004-04-04 05:00 -07:00:00 True
*/
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0
请参见
参考
TimeZone 类
TimeZone 成员
System 命名空间
ToUniversalTime
GetUtcOffset