如何在 dot net core 中获取另一个时区的本地时间

2024-02-29

我正在解决一个问题,我需要获取另一个时区的当前日期和时间。我不知道我的代码将在哪个时区运行,并且它需要在 Windows 和 Linux 机器上运行。

我还没有找到任何方法可以做到这一点。有任何想法吗?

(P.S:我特别需要找到瑞典的时间,包括代码可能运行的任意时区的夏令时)。


瑞典的 IANA 时区 ID 是"Europe/Stockholm"(适用于 Linux、OSX 和其他非 Windows 平台)。瑞典的 Windows 时区 ID 是"W. Europe Standard Time".

因此,您可以执行以下操作:

// Determine the time zone ID for Sweden
string timeZoneId = RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
    ? "W. Europe Standard Time"
    : "Europe/Stockholm";

// Get a TimeZoneInfo object for that time zone
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);

// Convert the current UTC time to the time in Sweden
DateTimeOffset currentTimeInSweden = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tzi);

如果需要,您可以使用我的来简化此操作时区转换器 https://github.com/mj1856/TimeZoneConverter库,它允许您在任何平台上使用任一 id。

TimeZoneInfo tzi = TZConvert.GetTimeZoneInfo("Europe/Stockholm");
DateTimeOffset currentTimeInSweden = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tzi);

如果在 .NET 6 或更高版本上运行,并且您有ICU全球化支持 https://learn.microsoft.com/dotnet/core/extensions/globalization-icu启用后,您不再需要使用我的库。如果需要,.NET 将自动从一种格式转换为另一种格式。所以你可以这样做:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Europe/Stockholm");
DateTimeOffset currentTimeInSweden = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tzi);

另请注意,代码运行的时区不相关,也不应该相关。夏令时规则Sweden是唯一相关的,而不是代码可能运行所在的时区。

最后,请注意,如果您希望获得有效的结果,则必须正确设置计算机的时钟。请始终使用 NTP 或操作系统的“自动设置日期和时间”功能将计算机时钟与 Internet 同步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 dot net core 中获取另一个时区的本地时间 的相关文章

  • 使用 TCP 套接字在本地代理视频

    我一直对向媒体浏览器添加对视频播客的支持非常感兴趣 我希望用户能够浏览可用的视频播客并从互联网上流式传输它们 这真的很容易 因为媒体播放器等将愉快地播放存在于云中的文件 问题是我想在本地缓存这些文件 因此同一集的后续观看将不涉及流式传输 而
  • 为什么我应该使用内联代码? [复制]

    这个问题在这里已经有答案了 我是一名 C C 开发人员 这里有几个始终困扰我的问题 常规 代码和内联代码之间有很大区别吗 主要区别是什么 内联代码只是宏的一种 形式 吗 选择内联代码时必须进行什么样的权衡 Thanks 表现 正如之前的答案
  • 线程独占数据:如何存储和访问?

    NET 中是否有可能将对象实例绑定到线程的当前执行上下文 这样在代码的任何部分我都可以做类似的事情CurrentThread MyObjectData DoOperation 并确保我访问特定于线程的数据 谢谢 你可以看一下线程静态属性 h
  • 为什么使用数组索引循环数组比指针访问慢?

    我正在读Kochan的书 Programming in C 在第 14 页的 指针和数组 部分中 264 他说 一般来说 索引数组的过程比执行索引过程花费更多的时间 访问指针内容的过程 其实这也是主要原因之一 为什么使用指针来访问数组的元素
  • 表达式访问者仅为某些 lambda 表达式调用 VisitParameter

    我希望能够使用嵌套扩展方法将 EF 中的实体投影到相应的视图模型 参见我之前的问题使用扩展方法在 EF 中投影单个实体 https stackoverflow com questions 39585427 projection of sin
  • 错误:“运行所选代码生成器时出错:包恢复失败”

    我正在尝试将控制器添加到 ASP NET Core 项目中的解决方案中 当我尝试这样做时 我收到此错误 我收到相同的消息 为控制器添加最小依赖项和完整依赖项 我也有这个问题 使用实体框架添加控制器 gt 带有操作的 API 控制器 将给出
  • .NET 中的 Class.forName() 等效项?

    动态获取对象类型然后创建它的新实例的 C 方法是什么 例如 如何在 C 中实现以下 Java 代码的结果 MyClass x MyClass Class forName classes MyChildClass newInstance Lo
  • C 链表销毁函数

    我正在尝试学习 C 和很多人一样 我对指针有点困惑 无论如何 我创建了一个递归函数来销毁我的链表 但是正如我调试的那样 当我从函数返回时 列表的头部不应该为空 所以我猜这是对指针的一些基本误解 这是函数 void destroy struc
  • UI 线程正在阻塞调用 COM 对象的后台线程

    我正在开发一个通过第三方 COM 库与外部设备通信的应用程序 我试图让与设备的所有通信都通过后台线程 以防止通信问题搞砸我的应用程序 并消除在 UI 线程中进行通信所引入的一些其他复杂性 问题是 每当发生导致主 UI 线程阻塞的情况 即调用
  • 可以通过模板间接访问基类中的私有类型

    我试图在编译时根据类型是否在给定范围内公开可用来选择要使用的类型 最好直接看代码 include
  • FFplay成功移入我的Winform中,如何设置它无边框?

    用这个代码 在 C 应用程序中显示 tcp 视频流 来自 FFPLAY FFMPEG https stackoverflow com questions 14201894 show a tcp video stream from ffpla
  • 使用信号和槽更新指针

    我对 Qt 很陌生 请帮我解决这个问题 我正在使用线程在后台执行密集操作 同时我想更新 UI 所以我使用 SIGNALS 和 SLOTS 为了更新 UI 我发出一个信号并更新 UI 让我们考虑下面的示例代码 struct sample QS
  • 为什么最小的 int -2147483648 的类型为“long”? [复制]

    这个问题在这里已经有答案了 对于一个学校项目 我必须编写 C 函数 printf 的代码 一切进展顺利 但有一个问题我找不到好的答案 所以我来了 printf PRINTF d t d n 2147483648 告诉我 gcc Werror
  • “DeploymentItem”属性是什么意思?

    假设我们有一个简短的程序 namespace ConsoleTryIt static class Program static void Main string args var sum Add 1 2 private static int
  • 如何将 Boost Spirit 自动规则与 AST 结合使用?

    编辑 当我想在另一个规则上使用它时 我扩展了 sehe 的示例以显示问题 http liveworkspace org code 22lxL7 http liveworkspace org code 22lxL7 17 我正在尝试提高 Bo
  • 如何解决 boost::multi precision::cpp_dec_float 除法错误

    除以boost multiprecision cpp dec float有某种舍入误差 如下 include
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • DbContext.SaveChangesAsync 异常处理

    当搭建新的脚手架时ApiController通过 Visual Studio 2013 中的异步操作和实体框架支持 某些方法可以包装DbContext SaveChangesAsync https msdn microsoft com en
  • 从其对象获取结构体字段的名称和类型

    例如 我有一个类似这样的结构 struct Test int i float f char ch 10 我有一个该结构的对象 例如 Test obj 现在 我想以编程方式获取字段名称和类型obj 是否可以 顺便说一句 这是 C 你正在要求C
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720

随机推荐

  • speex解码出错

    我使用 speex 对一些音频数据进行编码并通过 UDP 发送 然后在另一端对其进行解码 我用 speex 进行了一些测试 发现如果我在编码后立即解码数据包 则解码后的数据与原始数据相差甚远 缓冲区开头的大部分字节都是 0 因此 当我解码通
  • 任意多个节点的贝尔曼-福特距离向量算法

    我正在尝试为模拟路由器的类编写一个程序 到目前为止我已经设置了基础知识 路由器 可以通过模拟服务器向连接到该服务器的其他 路由器 发送和接收数据包 每个数据包仅包含该路由器的距离向量 当路由器接收到数据包时 它应该使用贝尔曼 福特算法相应地
  • 我可以在“coqtop - nois”下定义策略吗?

    coqtop nois Welcome to Coq 8 7 0 October 2017 Coq lt Ltac i idtac Toplevel input characters 0 4 gt Ltac i idtac gt Error
  • 如何在 Windows 中使用 PuTTY 创建 SSH 隧道?

    我需要在 Windows 中使用 PuTTY 创建 SSH 隧道 这与 Linux 中的命令相同 ssh fN L 2000 SomeIp 2000 myusername myLinuxBox 我在 PuTTY 中尝试了许多选项 包括将 G
  • 将大型 JSON 对象传递到新窗口中的另一个页面。

    如果这个问题已经得到回答 我提前道歉 我已经用谷歌搜索了几个小时了 但仍然没有找到任何似乎可以回答我的确切问题的东西 本质上 我有一个非常复杂 高度风格化的视图 它显示从数据库中提取的特定于用户的数据 我已将数据捕获为 JSON 对象 并使
  • 将透明 .PNG 图像传输到屏幕上

    你好 我有一个图像 上面画了一个黑色矩形 它的背景是透明的 该文件保存为 png clear png 然后我有另一个图像 它只是保存为 jpeg 的纯红色背景 background jpeg 我试图做的是使clear png 中的黑色矩形显
  • 如何处理空手道测试中的签名请求?

    首先 感谢构建空手道 它对于测试 API 和 UI 非常有用 我们正在使用它来测试许多端点 但我们想知道是否有一种方法或哪种方法是处理带有签名作为标头中请求的一部分的请求的最佳方法 在我们的例子中 我们有两个标头 ApiKey 这个值总是相
  • 线性冲突违反了可受理性,让我发疯

    当两个棋子tj和tk发生线性冲突时 如果tj和tk在同一行 则tj和tk的目标位置都在该行上 tj在tk的右侧 tj的目标位置在左侧tk 的目标位置 线性冲突迫使两个冲突图块相互包围 从而使它们的曼哈顿距离至少增加两步 因此 启发式函数将为
  • 创建一个进程并重定向其输入/输出并且不继承套接字句柄

    是否可以创建一个进程并重定向其输入和输出 但设置子进程不继承套接字句柄 也许以某种方式使用 CreateProcess 进行 pinvoke 如果我使用 UseShellExecute true 子级不会继承套接字 但我无法重定向输出 创建
  • 如何更改所有私有 JLabel 的字体大小

    我见过类似的问题 例如this https stackoverflow com questions 1966296 changing default jlabel font 但就我而言 我有 25 个以上的私有 JLabels 我在声明它时
  • 使用pandas写入和读取3D数据

    我有一个使用保存在文本文件中的 3D 数据的项目 我目前使用单个空格来分割第一个维度上的数据 使用一个换行符 n 来分割第二个维度 使用两个换行符 n n 来分割最后一个维度 并使用默认的读取和写入蟒蛇 这些数据的解释是使用字符串分割和列表
  • IndexedDB IDBKeyRange 复合/多重索引不起作用

    谁能解释为什么我的 IDBKeyRange 似乎只在第一列上进行过滤 我有一个索引定义如下 osDrugs createIndex combined name strength form packsize unique false 我的查询
  • eclipse 卡在正在运行的程序上

    这是我结束日食任务后的图片 我的Android程序没有错误 在出现这个问题之前一切都很好 当我在程序中添加一些代码时发生了这种情况 单击运行按钮后它卡住了 当我运行手机调试程序时也会发生这种情况 其他程序都运行良好 只有一个程序卡住了 我卡
  • Java 内置函数 Collections.Frequency(list, element) 的复杂度是多少?

    下面的代码是针对 String 的 ArrayList 的 我想知道这个问题的复杂度是多少Collections frequency 功能 List
  • MessageBox 中的粗体文本

    如何在显示的对话框中以粗体显示文本MessageBox Show 使用 C 有可能 消息框是一个常规窗口 可以像其他窗口一样被弄乱 然而 这样做的代码有点粗糙 将新类添加到您的项目并粘贴以下代码 using System using Sys
  • 如何在java中打开受密码保护的docx文件?

    我想使用 Apache POI 打开受密码保护的 docx 文件 谁能帮我完整的代码吗 我无法使用此代码得到解决方案 线程 main org apache poi poifs filesystem OfficeXmlFileExceptio
  • 深度克隆(复制)可变 Scala 对象的最简单方法是什么?

    深度克隆 复制 可变 Scala 对象的最简单方法是什么 由于您想要以最简单的方式深度复制 Scala 对象 而不是最快的方式 因此您始终可以序列化该对象 前提是它是可序列化的 然后将其反序列化回来 以下代码仅在编译时运行 而不是在 REP
  • 使用 OAuth 2.0 对用户进行身份验证时,重定向 URL 如何知道他们属于哪个用户?

    我是 Web 开发新手 并试图通过构建使用 Google API 的 Web 应用程序来入门 我正在阅读 Google 关于使用 OAuth 2 0 的文档 但重定向 URL 位让我有点困惑 根据例子here https developer
  • 如何防止 Kendo MultiSelect 在网格模板中编辑后丢失值?

    我有一个显示以逗号分隔的值列表的网格 并且它有一个在网格的模板编辑器中使用的数组 在服务器上 我将逗号分隔的列表转换为 Kendo 多选 AngularJS 指令的数组 我几乎已经完成了所有工作 在多选中显示 编辑和添加值 只是发生了一件奇
  • 如何在 dot net core 中获取另一个时区的本地时间

    我正在解决一个问题 我需要获取另一个时区的当前日期和时间 我不知道我的代码将在哪个时区运行 并且它需要在 Windows 和 Linux 机器上运行 我还没有找到任何方法可以做到这一点 有任何想法吗 P S 我特别需要找到瑞典的时间 包括代