【问题标题】:Get Indian Standard Time(IST) in c#?在 C# 中获取印度标准时间(IST)?
【发布时间】:2010-07-16 05:03:10
【问题描述】:

当我使用DateTime.Now() 函数显示我的系统日期时,它给了我系统日期和时间并且工作正常,但是当我尝试在我的服务器上运行此页面时 它给了我在印度以外的服务器的日期时间但是我想在服务器上执行此页面时获取印度的时间。 我知道可以通过Culture Info Class...任何建议....

【问题讨论】:

标签: c# datetime


【解决方案1】:

我使用此方法从 UTC 获取当前日期时间并通过实体框架保存

Err.Date = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));

数据库值 - 2016-06-23 09:51:13.183

【讨论】:

    【解决方案2】:

    这将按预期工作。

    TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
    DateTime indianTime =  TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE);
    Console.WriteLine(indianTime.ToString("dddd, dd-MM-yyyy hh:mm:ss tt"));
            
    

    或某些系统,时区可能是:

    TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("Asia/Kolkata");
    DateTime indianTime =  TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE);
    Console.WriteLine(indianTime.ToString("F"));
    

    【讨论】:

    • 这与 10 年前发布的已接受答案相同,只是添加了 Console.WriteLine 电话。我认为不值得为此添加答案,尤其是因为 OP 没有要求格式化任何内容。
    • 这是 2010 年 7 月 16 日写的。
    • 我们只需要正确的解决方案,而不是与解决方案相关的解决方案。
    • 啊,我看到您也将时区名称更改为 Asia/Kolkata - 我之前没有发现,您的回答 在任何地方都没有提及乙>。 (它基本上是一个仅代码的答案,没有任何解释。)请注意,这 不会 在 Windows 上工作 - 你的答案根本没有提到。我认为将其称为“正确的解决方案”而不注意它不适用于最常与 .NET 关联的操作系统有点奇怪,不是吗?
    • (基本上,在使用 Windows 时区 ID 的现有答案中添加注释会更好,指示“如果您需要在 Unix 系统上执行相同的操作,请使用“亚洲/加尔各答”作为时区 ID。)
    【解决方案3】:

    放:

    private static TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
    

    作为一个字段。

    然后,使用:

    DateTime indianTime =  TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE);
    

    根据需要获取时间。

    【讨论】:

    • @Mathew Cannot implicitly convert type 'System.TimeZoneInfo' to 'System.DateTime
    • @mathew The best overloaded method match for 'System.TimeZoneInfo.ConvertTimeFromUtc(System.DateTime, System.TimeZoneInfo)' has some invalid arguments
    • @Pandiya:输入TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Indian Standard Time");,然后输入DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow,tzi);
    • @KMan The time zone ID 'Indian Standard Time' was not found on the local computer.
    • @Pandiya:抱歉打错了,试试“印度标准时间”。刚刚测试过了。
    猜你喜欢
    • 1970-01-01
    • 2013-11-19
    • 2013-10-03
    • 2020-05-02
    • 1970-01-01
    • 2011-07-06
    • 2015-12-17
    • 1970-01-01
    • 2019-05-23
    相关资源
    最近更新 更多