【问题标题】:How to get current time of different countries in C#如何在C#中获取不同国家的当前时间
【发布时间】:2012-06-19 10:42:33
【问题描述】:

如何在 C# 中获取不同国家的当前时间,使用以下任意参数, 1.国名 2.国家时区

这适用于 Windows / WPF 应用程序,不像 Web 有人可以回答这个吗? 提前致谢。

【问题讨论】:

标签: wpf windows c#-4.0 timezone


【解决方案1】:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class Example
{
    public static void Main()
    {

        DateTime thisTime = DateTime.Now;

        Console.WriteLine("Enter the Country");
        var Input= Console.ReadLine();
        string InputConcatenate = (Input + " Standard Time");

        TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById(InputConcatenate);
        DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);
        Console.WriteLine("Time in {0} zone: {1}", tst.IsDaylightSavingTime(tstTime) ?
                          tst.DaylightName : tst.StandardName, tstTime);
        Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));

        Console.ReadLine();
    }
}

【讨论】:

    【解决方案2】:

    您应该查看TimeZoneInfo 类,特别是TimeZoneInfo.ConvertTime method

    例如,要获取中欧的当前时间:

    var remoteTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time");
    var remoteTime = TimeZoneInfo.ConvertTime(DateTime.Now, remoteTimeZone);
    Console.WriteLine("Time in {0} is {1}", remoteTimeZone.Id, remoteTime.TimeOfDay.ToString());
    

    【讨论】:

    • 这不提供一个国家的当前时区,它只是让你得到一个已知时区的信息。
    • 问题是关于获取时区信息,基于国家名称或类似标识符,而不是获取进程或主机的本地时区。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2015-07-20
    • 2020-04-11
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多