C#/.NET将UTC时间转换成美国东部时间(EST)时,我们需要使用到.NET Framework中与时区有关的TimeZoneInfo类的静态方法:FindSystemTimeZoneById("时区名称");然后再用TimeZoneInfo的静态方法:TimeZoneInfo.ConvertTimeFromUtc()将UTC时间转换成指定时区中的时间,具体示例代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, easternZone); Console.WriteLine("Local Time:{0}", DateTime.Now); Console.WriteLine("UTC Time:{0}", DateTime.UtcNow); Console.WriteLine("EST Time:{0}", easternTime); Console.ReadKey(); } } }运行结果如下: 如果我们还需要将上例转换得到的EST时间格式化成ISO 8601格式的,又应该怎么做呢?答案有很多种,这里列举其中一种,即使用DateTime.ToString()方法,还是把完整的示例代码贴出来:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, easternZone); Console.WriteLine("Local Time:{0}", DateTime.Now); Console.WriteLine("UTC Time:{0}", DateTime.UtcNow); Console.WriteLine("EST Time:{0}", easternTime); Console.WriteLine("{0}", easternTime.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'z'")); Console.ReadKey(); } } }运行结果如下图:
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册