c# - 更改 DateTimeOffset 中的偏移量
问题描述
我正在使用 Google TimeZone API 根据地址为我提供 UTC 偏移量。例如,对于城市 Lima,它返回 -18000 秒。
如何在 DateTimeOffset 中使用此信息并让它仅更改它的 Offset 属性,以秒为单位计算差异,以便它显示当前时间,但 Offset 在哪里像这样变化?
日期时间 = {12-01-2020 21:15:33} => 日期时间偏移 = {12-01-2020 21:15:33 -05:00 }
对于巴黎,它应该在 Offset 属性中为 +01:00。
解决方案
我想我已经想通了。这似乎有效:
DateTimeOffset now = DateTimeOffset.UtcNow; //{13-01-2020 07:39:04 +00:00}
TimeSpan timeSpanInterval = TimeSpan.FromSeconds(googleTimeZone.dstOffset + googleTimeZone.rawOffset); // {-05:00:00}
dateTimeOffset = now.ToOffset(timeSpanInterval); // {13-01-2020 02:39:04 -05:00}
也许它可以用另一种方式完成,但这似乎按照我想要的方式设置了 Offset 属性。
推荐阅读
- java - com.sun.mail.util.MailConnectException:无法连接到主机,端口:smtp.gmail.com,587 超时 -1
- google-apps-script - 将错误消息设置为英语
- design-patterns - 如何在字符串中找到转义字符\?
- java - 逃逸分析是否有助于 JVM 在堆栈上分配数组?
- tornado - 为什么 Tornado 会花时间在 socket.send(data) 中?
- php - chmod():Laravel 中不允许的操作
- emacs - Emacsclient:搜索程序:没有这样的文件或目录,ruby
- parameters - 如何获取视图组件中的参数值?
- android - 来自后台应用程序的 Android 屏幕截图
- javascript - 找不到 Django 静态文件 404