NodaTime生成指定时区的时间

这篇具有很好参考价值的文章主要介绍了NodaTime生成指定时区的时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近遇到需要进行时区转换和获取/生成指定时区时间的需求。但网上大部分例子都是通过UTC时间或者DateTime.NtcNow或DateTime.Now实现的。但如果和第三方对接会出现对方只提供当地非当前时间且没带时区,这时候这些例子都不太满足需求,所以研究了一下用NodaTime来解决这个问题。


代码实现

	string dateStr = "2024-01-01";
	string zoneStr = "Asia/Tokyo";
	DateTime dateTime = DateTime.Parse(dateStr);
	LocalDateTime localDateTime = LocalDateTime.FromDateTime(dateTime);
	DateTimeZone timeZone = DateTimeZoneProviders.Tzdb[zoneStr];
	ZonedDateTime zonedDateTime = new ZonedDateTime(localDateTime, timeZone, timeZone.MinOffset);

优点

可以通过string随意生成指定时区的指定时间,不需要通过UTC再转换。


缺点

暂时没有测试对夏令时的支持,以后有时间再研究。


TimeZone列表

https://nodatime.org/TimeZones文章来源地址https://www.toymoban.com/news/detail-622395.html

到了这里,关于NodaTime生成指定时区的时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【时区】Flink JDBC 和CDC时间字段时区 测试及时间基准

    关联文章: 各种时间类型和timezone关系浅析 1. 测试一般的数据库不含time zone的类型的时区。 mysql timestamp(3) 类型 postgres timestamp(3) 类型 sqlserver datetime2(3) 类型 oracle类型 TIMESTAMP(3) 类型 在以下测试之中均为 ts 字段 2.测试CDC中元数据 op_ts 时区 在以下测试中cdc表建表均使用 ts_ms T

    2024年02月06日
    浏览(46)
  • Flink SQL 时区 -- 时间字符串转时间戳并转换时区

    将时间字符串格式化,转变成时间戳,再加8小时后写入clickhouse (该方法默认精确度为秒,不适用毫秒) (1)UNIX_TIMESTAMP 作用:将时间字符串转换成时间戳 用法:UNIX_TIMESTAMP(STRING datestr, STRING format) (2)CONVERT_TZ 作用:转换时区 用法:CONVERT_TZ(string1, string2, string3) (实测仅获

    2024年02月04日
    浏览(48)
  • Golang通过Gorm操作Mysql时遇到的datetime时区问题

    golang使用Gorm操作MySQL,MySQL中数据类型是datetime,Golang中用的是time.now。 但是会导致存储的时间与北京时间有8h误差, 显然是没有初始化时区导致。 参考我自己之前写过的一篇总结——Mysql中多种日期类型——DATETIME、TIMESTAMP、TIME、YEAR、DATE的区分 datetime是给什么就存什么,

    2024年01月20日
    浏览(40)
  • JAVA 时区时间相互转换

            //系统设置为UTC时区         System.setProperty(\\\"user.timezone\\\", \\\"UTC\\\");         //String dateString = \\\"2023-04-06T07:23:36.539767500\\\";         String dateString = \\\"2023-04-06T08:15:06.662Z\\\";         System.out.println(\\\"UTC 时间:\\\"+dateString.subSequence(0, dateString.length()));         String localDateTime1 = LocalD

    2024年02月16日
    浏览(38)
  • PostGreSQL:时间戳时区问题

            PostGreSQL数据库内置的时间类型如下,注意到:内置的时间类型被分为了with time zone-带时区、without time zone-不带时区两种类型,    time 、 timestamp 和 interval都可以 接受一个可选的精度值  p (取值:0-6),这个精度值声明在秒域中小数点之后保留的位数。缺省情况下

    2024年02月04日
    浏览(54)
  • macOS修改默认时区显示中国时间

    默认时区不是中国,显示时间不是中国时间 打开终端 ,删除旧区,并复制新时区到etcreb sudo -rm -rf /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 重启系统后时间显示为中国时间

    2024年01月21日
    浏览(53)
  • centos7设置时区,时间+时间同步的三种方式

    1.1查看当前时区: 1.2查看时间命令: 1.3选择时区命令 设置timezone的时区 3.1安装ntp 3.2启动ntp服务 3.3查看ntp服务 3.4修改ntp.conf文件 3.5重启服务 3.6检查同步状态 3.7执行硬件时间向软件时间同步 3.8查看当前时间 4.1最简单的方法,让所有集群中的主机跟某个时间服务器的 时间同步

    2024年02月04日
    浏览(53)
  • centos 系统下查看时间时区以及修改

    1.1查看系统时间 1.2将系统日期修改为2014-7-2 : 1.3系统时间设置为 上午10:20 1.4系统时区修改 1.4.1查看系统时区 1.4.2修改时区(将上海改为系统时区) 提示是否要覆盖,输入y 确定 在Centos 7 中引入了一个叫 timedatectl 的设置设置程序.用法很简单: 2.1将硬件时钟调整为与本地时钟

    2024年02月11日
    浏览(51)
  • elasticsearch自动填充时间,并转换为上海时区

    由于ES默认时区为UTC,比我上海时区慢八个小时且是TZ格式,当我们需要自动填充为yyyyy-MM-dd HH:mm:ss格式时我们就需要对其进行处理。 1、定义预处理管道:chage_utc_to_asiash(管道名可更改) 2、创建索引,指定管道 3、写入数据 4.查看结果  

    2024年02月11日
    浏览(46)
  • 解决docker中日志时区/时间不正确问题

    在使用docker中,发现docker的时间跟自己电脑的时间对不上(如图),差好几个小时?什么原因呢?   可能因为时区不对,在dockerfile中增加以下代码,即可使docker日志的时间与当前时间一致: ENV TimeZone=Asia/Shanghai # 使用软连接,并且将时区配置覆盖/etc/timezone RUN ln -snf /usr/sha

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包