使用以分钟为单位的偏移量将 UTC 时间转换为时区时间 C#

问题描述

  1. 前端发送 timezoneOffsetInMinutes

var timezoneOffsetInMinutes = new Date().getTimezoneOffset();
console.log(timezoneOffsetInMinutes);

  1. Api 接收偏移量

    public DateTimeOffset GetDateTimeOffsetAtTimezone(int timezoneOffsetInMinutes)
    {
        var utc = DateTime.UtcNow;
        utc.AddMinutes(timezoneOffsetInMinutes); //Apply the offset
        var result = new DateTimeOffset(utc,TimeSpan.FromMinutes(timezoneOffsetInMinutes)); //Set the offset
    
        return result;
    }
    

出于某种原因,我收到此错误消息

"The UTC Offset for Utc DateTime instances must be 0. (Parameter 'offset')"

我不想使用 NodaTime,因为我已经有了 timezoneOffset,我只需要应用它。除非我错了,我应该使用 NodaTime。

如果您知道这样做的正确方法,那将非常有帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)