首页 > 编程语言 >JAVA:根据经纬度获取夏令时以及偏移(免费)

JAVA:根据经纬度获取夏令时以及偏移(免费)

时间:2025-01-18 11:32:38浏览次数:3  
标签:JAVA 经纬度 夏令时 获取 偏移 偏移量 时区 now

注:国内根据经纬度来获取夏令时区以及时区偏移量的api的服务有百度和谷歌,但是谷歌的获取夏令时和时区的api在国内服务其上部署时访问不了的(看过有在服务器上安装代理的,但是操作有点复杂。好吧,其实是我看着步骤太多,感觉太麻烦所以直接pass了)。

所以目前在我获取到的信息中,只有百度的api可以根据经纬度来获取时区等信息,但是百度api又需要注册申请key,所以此路又不通。

经过我反复查找发现了一个第三方库,可以根据经纬度来获取到时区Id然后再配合TimeZone类完美解决夏令时以及时区偏移量的问题,下面把代码以及库地址奉上。

1.首先我们需要将第三方库下载下来。(没有魔法操作访问不了github的可以直接联系我取jar包)

下载地址:https://github.com/drtimcooper/LatLongToTimezone

2.等下载之后打开idea,编译打包

3.然后将jar包引入我们需要使用的项目中的ib文件夹

4.将依赖加入到项目中的pom.xml文件中

<dependency>
    <groupId>com.skedgo.converter</groupId>
    <artifactId>timezone-mapper</artifactId>
    <version>1.0.1-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/LatLongToTimezone-1.0.1SNAPSHOT.jar</systemPath>
</dependency>

5.最后我们就可以来操作代码了

//1.TimezoneMapper.latLngToTimezoneString就是我们引入第三方库的方法,将我们的经纬度传入方法中获取时区Id,例如:latitude:27.596977,longitude:-81.523515
String timezoneId = TimezoneMapper.latLngToTimezoneString(latitude,longitude );
//获取到的时区id:America/New_York
// 2. 使用 TimeZone 获取详细信息
TimeZone timeZone = TimeZone.getTimeZone(timezoneId);
// 3. 获取标准 UTC 偏移量(毫秒)
int rawOffset = timeZone.getRawOffset()/ 1000;
// 4.查看该时区是否是夏令时,true时夏令时,false非夏令时
 ZoneId zoneId = ZoneId.of(timezoneId);
 ZonedDateTime now = ZonedDateTime.now(zoneId);
 boolean dst = now.getZone().getRules().isDaylightSavings(now.toInstant()) ; 
//以上就是获取时区id以及偏移量和夏令时的操作      

至此,根据经纬度获取时区id以及夏令时和偏移量的操作完成。

标签:JAVA,经纬度,夏令时,获取,偏移,偏移量,时区,now
From: https://blog.csdn.net/weixin_42163782/article/details/145223738

相关文章

  • JAVA安全之JDK8u141版本绕过研究
    基本介绍从JDK8u141开始JEP290中针对RegistryImpl_Skel#dispatch中bind、unbind、rebind操作增加了checkAccess检查,此项检查只允许来源为本地,下面以bind为例:publicvoiddispatch(Remotevar1,RemoteCallvar2,intvar3,longvar4)throwsException{if(var4!=4......
  • Java初学者笔记-04、异常与泛型
    异常异常代表程序出现的问题。Error错误和Exception异常。RuntimeException运行时异常。编译时异常,提醒程序员这里的程序很容易出错。异常的基础处理抛出给上层调用者。使用try-catch处理。异常的处理方案底层异常抛出,最外层捕获异常记录异常并响应合适信息。(少见)最......
  • leetcode——接雨水(java)
    给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1:输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。示例......
  • 【2024年华为OD机试】 (A卷,200分)- 硬件产品销售方案(Java & JS & Python&C/C++)
    一、问题描述题目描述某公司目前推出了AI开发者套件,AI加速卡,AI加速模块,AI服务器,智能边缘多种硬件产品,每种产品包含若干个型号。现某合作厂商要采购金额为amount元的硬件产品搭建自己的AI基座。例如当前库存有N种产品,每种产品的库存量充足,给定每种产品的价格,记为price(不......
  • 【2024年华为OD机试】 (B卷,100分)- 流水线(Java & JS & Python&C/C++)
    一、问题描述题目描述一个工厂有m条流水线,来并行完成n个独立的作业,该工厂设置了一个调度系统,在安排作业时,总是优先执行处理时间最短的作业。现给定流水线个数m,需要完成的作业数n,每个作业的处理时间分别为t1,t2,...,tn。请你编程计算处理完所有作业的耗时为多......
  • 股票API接口使用python、JAVA等多种语言实例代码演示免费获取实时数据、历史数据、CDM
    ​最新整理的股票API接口,下方所有接口链接均可直接点击验证,查看返回的数据。沪深两市股票列表股票API接口链接(可点击验证):https://api.mairui.club/hslt/list/LICENCE-66D8-9F96-0C7F0FBCD073【实时数据接口】沪深两市实时交易数据接口股票API接口链接(可点击验证):https:......
  • leetcode——令牌放置(java)
    你的初始能量为power,初始分数为0,只有一包令牌以整数数组tokens给出。其中tokens[i]是第i个令牌的值(下标从0开始)。你的目标是通过有策略地使用这些令牌以最大化总分数。在一次行动中,你可以用两种方式中的一种来使用一个未被使用的令牌(但不是对同一个令牌使......
  • java集合
    集合想一下,目前为止,我们学过哪些可以存储元素的容器:1、数组,查询快,增删慢。既可以存储基本数据类型的元素,又可以存储引用数据类型的元素对于同一个数组而言,元素类型都是一样长度一旦创建旧固定了,不能改变长度。2、StringBuffer长度可以随着添加的字符个数而改变StringBuffe......
  • java常用类
    java常用类Api概述API(ApplicationProgrammingInterface)应用程序编程接口编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。但是对于有经验的开发人员来说,知道机器人厂商一......
  • Java基础学习(八)
    Java基础学习(八):字符串目录Java基础学习(八):字符串概述字符串的创建字符串内存分析String类常用方法StringBuilder类StringJoiner类字符串相关类底层原理本文为个人学习记录,内容学习自黑马程序员概述java.lang包是Java的核心包,其下的类都是无需手动导入即可使用的java.......