返回介绍

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

发布于 2025-02-23 23:15:51 字数 2276 浏览 0 评论 0 收藏 0

应用程序所需的精确的时区信息可能不存在特定的系统上有几个原因:

  • 永远不会在本地系统注册表中定义该时区。
  • 已修改或从注册表中删除有关时区数据。
  • 时区存在,但不是具有特定的历史时期时区调整的准确信息。

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

重要

通过调用创建的自定义时区 CreateCustomTimeZone 方法不会添加到注册表。 相反,它们可以仅通过返回的对象引用 CreateCustomTimeZone 方法调用。

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

若要创建不带调整规则的时区

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

    显示名称应遵循标准格式时区偏移量从协调世界时 (UTC) 括在括号中后,跟一个字符串,标识一个或多个城市中时区,或一个或多个 cou 时区 ntries 或时区中的区域。

  2. 定义时区的标准时间的名称。 通常情况下,此字符串还用作时区的标识符。
  3. 如果你想要使用比时区的标准名称的不同标识符,定义的时区标识符。
  4. 实例化 TimeSpan 对象,用于定义相对于 UTC 的时区偏移量。 时间晚于 UTC 的时区具有负的偏移量。 时间早于 UTC 的时区有负的偏移量。
  5. 调用 TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) 方法可实例化新的时区。

示例

下面的示例定义莫南极洲,没有调整规则的自定义时区。

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);    
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)    

分配给字符串 DisplayName 属性应遵循标准格式,相对于 UTC 的时区偏移量跟时区的友好说明。

编译代码

此示例需要:

  • 对 System.Core.dll 的引用无法添加到项目。
  • 将导入以下命名空间:
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    
    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    

请参阅

日期、 时间和时区 时区概述 如何: 创建带有调整规则的时区

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文