欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 【工具类】获取日出日落时间的Java工具类

【工具类】获取日出日落时间的Java工具类

2025/2/25 14:11:16 来源:https://blog.csdn.net/weixin_44299027/article/details/145161204  浏览:    关键词:【工具类】获取日出日落时间的Java工具类

博主介绍:✌全网粉丝22W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌

技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。

感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。

获取日出日落时间的Java工具类

为了获取日出和日落时间,你可以使用Java编写一个工具类,这个工具类可以调用一个提供日出日落时间的API。例如,你可以使用Sunrise-Sunset API,这是一个免费的、开源的API,可以返回给定地理位置的日出和日落时间。

以下是一个简单的Java工具类示例,它使用HTTP请求从Sunrise-Sunset API获取日出和日落时间:首先,确保你已经添加了HTTP客户端库到你的项目中。如果你使用的是Maven,你可以在pom.xml中添加以下依赖:

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>

创建一个工具类 SunriseSunsetUtil

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;public class SunriseSunsetUtil {private static final String API_URL = "https://api.sunrise-sunset.org/json?lat=%s&lng=%s&formatted=0";public static String getSunriseSunset(double latitude, double longitude) throws IOException, ParseException {String url = String.format(API_URL, URLEncoder.encode(String.valueOf(latitude), StandardCharsets.UTF_8), URLEncoder.encode(String.valueOf(longitude), StandardCharsets.UTF_8));try (CloseableHttpClient httpClient = HttpClients.createDefault()) {HttpGet request = new HttpGet(url);HttpResponse response = httpClient.execute(request);int statusCode = response.getStatusLine().getStatusCode();if (statusCode == 200) {HttpEntity entity = response.getEntity();String jsonResponse = EntityUtils.toString(entity, StandardCharsets.UTF_8);JSONObject jsonObject = new JSONObject(jsonResponse);String status = jsonObject.getString("status");if ("OK".equals(status)) {String sunrise = jsonObject.getString("results").getString("sunrise");String sunset = jsonObject.getString("results").getString("sunset");SimpleDateFormat sdfInput = new SimpleDateFormat("HH:mm:ss", Locale.ENGLISH);SimpleDateFormat sdfOutput = new SimpleDateFormat("HH:mm", Locale.ENGLISH);Date sunriseDate = sdfInput.parse(sunrise);Date sunsetDate = sdfInput.parse(sunset);return String.format("Sunrise: %s, Sunset: %s", sdfOutput.format(sunriseDate), sdfOutput.format(sunsetDate));} else {throw new IOException("API error: " + jsonObject.getString("message"));}} else {throw new IOException("Failed to fetch data: HTTP error code " + statusCode);}}}public static void main(String[] args) {try {// Example usage:double latitude = 40.7128; // New York City latitudedouble longitude = -74.0060; // New York City longitudeString sunriseSunset = getSunriseSunset(latitude, longitude);System.out.println(sunriseSunset);} catch (IOException | ParseException e) {e.printStackTrace();}}
}

说明:

API URL:API_URL 是Sunrise-Sunset API的URL,包含纬度和经度的占位符。
HTTP 请求:使用Apache HttpClient库发送HTTP GET请求到API。
JSON 解析:使用org.json库解析返回的JSON响应。
日期格式化:将返回的HH:mm:ss格式的日期时间转换为HH:mm格式。
错误处理:处理HTTP错误和API错误。

依赖:
Apache HttpClient库(用于HTTP请求)。
org.json库(用于JSON解析)。

注意:

确保你的项目能够访问外部网络。
根据你的项目配置,可能需要添加更多的错误处理和日志记录。
你可能还需要考虑时区问题,这里假设服务器返回的时间是UTC时间,并根据需要转换为本地时间。


好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈

本文完结!

祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词