如何:创建不带调整规则的时区

在特定的系统上,应用程序需要的精确时区信息可能不存在,这有多种原因:

  • 本地系统的注册表中从未定义该时区。

  • 有关该时区的数据已被修改或已从注册表中移除。

  • 该时区存在,但它不具有与特定历史时期的时区调整有关的信息。

在这些情况下,可以调用 CreateCustomTimeZone 方法定义应用程序所需的时区。 您可以使用此方法的重载创建带有或不带调整规则的时区。 如果该时区支持夏时制,则可以用固定调整规则或浮动调整规则来定义调整方式 (有关这些术语的定义,请参见时区概述中的“时区术语”一节)。

重要说明重要事项

通过调用 CreateCustomTimeZone 方法创建的自定义时区不会被添加到注册表中。它们只能通过由 CreateCustomTimeZone 方法调用返回的对象引用进行访问。

本主题介绍如何创建不带调整规则的时区。 若要创建支持夏时制调整规则的时区,请参见如何:创建带有调整规则的时区

创建不带调整规则的时区

  1. 定义时区的显示名称。

    显示名称应遵循相对标准的格式,其中时区的协调世界时 (UTC) 偏移量用括号括起来,后面是一个字符串,用于标识时区、该时区中的一个或多个城市或者该时区中的一个或多个国家/地区。

  2. 定义时区的标准时间名称。 此字符串通常还用作时区的标识符。

  3. 如果要使用不同于时区标准名称的标识符,请定义时区标识符。

  4. 实例化定义时区的 UTC 偏移量的 TimeSpan 对象。 时间晚于 UTC 的时区有正偏移值。 时间早于 UTC 的时区有负偏移值。

  5. 调用 TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) 方法可实例化新时区。

示例

下面的示例定义了一个南极莫森自定义时区,此时区不带调整规则。

Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time" 
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)      
string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time"; 
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}", 
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);      

分配给 DisplayName 属性的字符串遵循一种标准格式,其中先是时区的 UTC 偏移量,后面跟有该时区的友好说明。

编译代码

此示例需要:

  • 在项目中添加一个对 System.Core.dll 的引用。

  • 导入下列命名空间:

    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    

请参见

任务

如何:创建带有调整规则的时区

概念

时区概述

其他资源

日期、时间和时区