【问题标题】:How to change UTC to IST [duplicate]如何将 UTC 更改为 IST [重复]
【发布时间】:2022-01-21 18:31:24
【问题描述】:

我正在尝试使用此代码从数据库中获取 Inv_date 并且它工作正常,但我想根据 IST 时区获取日期,因为在数据库中它遵循 UTC 时区。我该怎么做?

 public DateTime? Inv_date { get; set; }
    public string TXNDate
    {
        get
        {
            return this.Inv_date?.ToString("dd/MM/yyyy");

        }
    }

谁能帮我解决这个问题?

【问题讨论】:

    标签: c# .net sql-server


    【解决方案1】:

    理想情况下,您应该在客户端(浏览器/应用程序)将 DateTime 转换为用户的本地时区

    现在,你应该试试这个:

     public DateTime? Inv_date { get; set; }
        public string TXNDate
        {
            get
            {
                return TimeZoneInfo.ConvertTimeFromUtc(this.Inv_date, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
    
            }
        }
    

    PS:无法测试此代码。

    【讨论】:

    • 它不起作用,因为 Ivn_date 应该通过执行 .ToUniversalTime() 转换为 UTC
    【解决方案2】:

    在这里;

        public string TXNDate
        {
            get
            {
                if (Inv_date == null)
                {
                    return string.Empty;
                }
    
                return TimeZoneInfo.ConvertTimeFromUtc(Inv_date.GetValueOrDefault().ToUniversalTime(),
                    TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).ToString("dd/MM/yyyy");
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多