当前位置:首页 开发语言 正文
+1°

.netframework中TimeZoneInfo类的使用

2012年08月21日 | 作者: 米豆网 - 1000seo | 分类: 开发语言 | 

.net famework3.5中新增加了一个关于时区的静态类,可以使得我们方便的操作与时区相关的信息

时区是使用同一时间的地理区域。

TimeZoneInfo 扩展了 TimeZone 类,后者提供的是有限的功能。TimeZone 类只识别本地时区,但可以在协调世界时 (UTC) 和本地时间之间转换时间。TimeZoneInfo 对象可以表示任意时区,且 TimeZoneInfo 类的方法可用于将一个时区的时间转换为其他任意时区的相应时间。TimeZoneInfo 类的成员支持以下操作:

检索操作系统已定义的时区。

枚举系统上可用的时区。

在不同时区之间转换时间。

创建操作系统尚未定义的新时区。

序列化时区,供以后检索使用。

注意:
TimeZoneInfo 类的实例是不可变的。一旦实例化对象后,就无法修改其值。

TimeZoneInfo是静态类,不能使用 new 关键字实例化 TimeZoneInfo 对象。相反,必须调用下表所示的 TimeZoneInfo 类的静态成员之一。

CreateCustomTimeZone 方法               使用应用程序提供的数据创建自定义时区。

FindSystemTimeZoneById 方法          根据时区的标识符实例化在系统注册表中定义的时区。

FromSerializedString 方法                     反序列化一个字符串值,以重新创建先前已序列化的 TimeZoneInfo 对象。

GetSystemTimeZones 方法                    返回 TimeZoneInfo 对象的可枚举的 ReadOnlyCollection<(Of <(T>)>),它表示本地系统上可用的所有时区。

Local 属性                                                     实例化表示本地时区的 TimeZoneInfo 对象。

Utc 属性                                                         实例化表示 UTC 时区的 TimeZoneInfo 对象。

可以使用 CreateCustomTimeZone 方法创建在本地系统注册表中未定义的时区。然后可使用 ToSerializedString 属性将时区对象的信息保存为字符串,该字符串可以以应用程序可访问的某种格式存储。使用 FromSerializedString 方法可将序列化字符串转换回 TimeZoneInfo 对象.

新建一个控制台应用程序,输入如下代码:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{

TimeZoneInfo t = TimeZoneInfo.Local;
Console.WriteLine(t.DaylightName + " ");
Console.WriteLine(t.DisplayName + " ");
Console.WriteLine(t.Id + " ");
Console.WriteLine(t.StandardName + " ");
Console.WriteLine(t.SupportsDaylightSavingTime.ToString() + " ");
Console.WriteLine(t.ToSerializedString() + " ");
//Console.ReadLine();
System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> info = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("以下是所有的时区列表" + " ");
for (int i = 0; i < info.Count; i++)
{
Console.WriteLine(info[i].ToString());
}
Console.ReadLine();

}
}
}

以下是运行的结果:

China Daylight Time
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
China Standard Time
China Standard Time
False
China Standard Time;480;(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi;China Standard Time;China Daylight Time;;
以下是所有的时区列表
(UTC) Casablanca
(UTC) Coordinated Universal Time
(UTC) Dublin, Edinburgh, Lisbon, London
(UTC) Monrovia, Reykjavik
(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
(UTC+01:00) Brussels, Copenhagen, Madrid, Paris
(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb
(UTC+01:00) West Central Africa
(UTC+01:00) Windhoek
(UTC+02:00) Amman
(UTC+02:00) Athens, Bucharest
(UTC+02:00) Beirut
(UTC+02:00) Cairo
(UTC+02:00) Damascus
(UTC+02:00) Harare, Pretoria
(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
(UTC+02:00) Istanbul
(UTC+02:00) Jerusalem
(UTC+02:00) Nicosia
(UTC+03:00) Baghdad
(UTC+03:00) Kaliningrad, Minsk
(UTC+03:00) Kuwait, Riyadh
(UTC+03:00) Nairobi
(UTC+03:30) Tehran
(UTC+04:00) Abu Dhabi, Muscat
(UTC+04:00) Baku
(UTC+04:00) Moscow, St. Petersburg, Volgograd
(UTC+04:00) Port Louis
(UTC+04:00) Tbilisi
(UTC+04:00) Yerevan
(UTC+04:30) Kabul
(UTC+05:00) Islamabad, Karachi
(UTC+05:00) Tashkent
(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi
(UTC+05:30) Sri Jayawardenepura
(UTC+05:45) Kathmandu
(UTC+06:00) Astana
(UTC+06:00) Dhaka
(UTC+06:00) Ekaterinburg
(UTC+06:30) Yangon (Rangoon)
(UTC+07:00) Bangkok, Hanoi, Jakarta
(UTC+07:00) Novosibirsk
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
(UTC+08:00) Krasnoyarsk
(UTC+08:00) Kuala Lumpur, Singapore
(UTC+08:00) Perth
(UTC+08:00) Taipei
(UTC+08:00) Ulaanbaatar
(UTC+09:00) Irkutsk
(UTC+09:00) Osaka, Sapporo, Tokyo
(UTC+09:00) Seoul
(UTC+09:30) Adelaide
(UTC+09:30) Darwin
(UTC+10:00) Brisbane
(UTC+10:00) Canberra, Melbourne, Sydney
(UTC+10:00) Guam, Port Moresby
(UTC+10:00) Hobart
(UTC+10:00) Yakutsk
(UTC+11:00) Solomon Is., New Caledonia
(UTC+11:00) Vladivostok
(UTC+12:00) Auckland, Wellington
(UTC+12:00) Coordinated Universal Time+12
(UTC+12:00) Fiji
(UTC+12:00) Magadan
(UTC+12:00) Petropavlovsk-Kamchatsky – Old
(UTC+13:00) Nuku’alofa
(UTC+13:00) Samoa
(UTC-01:00) Azores
(UTC-01:00) Cape Verde Is.
(UTC-02:00) Coordinated Universal Time-02
(UTC-02:00) Mid-Atlantic
(UTC-03:00) Brasilia
(UTC-03:00) Buenos Aires
(UTC-03:00) Cayenne, Fortaleza
(UTC-03:00) Greenland
(UTC-03:00) Montevideo
(UTC-03:00) Salvador
(UTC-03:30) Newfoundland
(UTC-04:00) Asuncion
(UTC-04:00) Atlantic Time (Canada)
(UTC-04:00) Cuiaba
(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
(UTC-04:00) Santiago
(UTC-04:30) Caracas
(UTC-05:00) Bogota, Lima, Quito
(UTC-05:00) Eastern Time (US & Canada)
(UTC-05:00) Indiana (East)
(UTC-06:00) Central America
(UTC-06:00) Central Time (US & Canada)
(UTC-06:00) Guadalajara, Mexico City, Monterrey
(UTC-06:00) Saskatchewan
(UTC-07:00) Arizona
(UTC-07:00) Chihuahua, La Paz, Mazatlan
(UTC-07:00) Mountain Time (US & Canada)
(UTC-08:00) Baja California
(UTC-08:00) Pacific Time (US & Canada)
(UTC-09:00) Alaska
(UTC-10:00) Hawaii
(UTC-11:00) Coordinated Universal Time-11
(UTC-12:00) International Date Line West

winForm中枚举出所有时区,并选中当前系统设置的时区

新建一个winform应用程序,增加一个Combox控件并命名为cb

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
cb.Size = new System.Drawing.Size(300, 20);
TimeZoneInfo t = TimeZoneInfo.Local;
System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> info = TimeZoneInfo.GetSystemTimeZones();
cb.DataSource = info;
cb.SelectedIndex = cb.FindStringExact(t.DisplayName);

}
}
}

运行效果

.netframework3.5 中TimeZoneInfo 类的使用

本文章由 米豆网 - 1000seo 于2012年08月21日发布在开发语言分类下,您可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
+复制链接 转载请注明:.netframework中TimeZoneInfo类的使用-米豆网
关键字:, , , , ,

好文章就要一起分享!

更多

目前共有1条留言

发表评论

你的大名(必填)

你的邮箱(必填)

你的网站(选填)

评论内容(必填)

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif