You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Current time API检测精确时间的JAVA调用方法及代码求助

Java调用worldtimeapi获取准确时间实现方案

实现说明

  • 目标接口示例:http://worldtimeapi.org/api/timezone/Asia/Shanghai,可替换路径末尾的时区标识适配不同地区需求
  • 接口返回为JSON格式,示例中使用fastjson2做解析,也可替换为jackson、gson等其他JSON解析工具

方案1:JDK 11+ 内置HttpClient实现(无第三方HTTP依赖)

依赖配置(Maven)

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.47</version>
</dependency>

代码片段

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.alibaba.fastjson2.JSONObject;

public class WorldTimeApiDemo {
    public static void main(String[] args) throws Exception {
        // 以上海时区为例
        String apiUrl = "http://worldtimeapi.org/api/timezone/Asia/Shanghai";
        HttpClient httpClient = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(apiUrl))
                .GET()
                .build();
        HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
        
        if (response.statusCode() == 200) {
            JSONObject responseJson = JSONObject.parseObject(response.body());
            // 按需提取字段即可
            String localDatetime = responseJson.getString("datetime");
            String utcDatetime = responseJson.getString("utc_datetime");
            long unixTime = responseJson.getLongValue("unixtime");
            String timezone = responseJson.getString("timezone");
            
            System.out.println("当前时区:" + timezone);
            System.out.println("本地时间:" + localDatetime);
            System.out.println("UTC时间:" + utcDatetime);
            System.out.println("Unix时间戳:" + unixTime);
        } else {
            System.out.println("请求失败,状态码:" + response.statusCode());
        }
    }
}

方案2:OkHttp实现(兼容JDK 8及以上版本)

依赖配置(Maven)

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.12.0</version>
</dependency>
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.47</version>
</dependency>

代码片段

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import com.alibaba.fastjson2.JSONObject;

public class WorldTimeApiOkHttpDemo {
    // OkHttpClient全局复用即可,无需每次请求新建实例
    private static final OkHttpClient OK_HTTP_CLIENT = new OkHttpClient();

    public static void main(String[] args) throws Exception {
        String apiUrl = "http://worldtimeapi.org/api/timezone/Asia/Shanghai";
        Request request = new Request.Builder()
                .url(apiUrl)
                .get()
                .build();
        try (Response response = OK_HTTP_CLIENT.newCall(request).execute()) {
            if (response.isSuccessful() && response.body() != null) {
                String responseBody = response.body().string();
                JSONObject responseJson = JSONObject.parseObject(responseBody);
                // 字段提取逻辑和方案1完全一致
                System.out.println("本地时间:" + responseJson.getString("datetime"));
                System.out.println("Unix时间戳:" + responseJson.getLongValue("unixtime"));
            } else {
                System.out.println("请求失败,状态码:" + response.code());
            }
        }
    }
}

注意事项

  • 该接口为公共服务,有调用频率限制,请勿短时间内发起大量重复请求
  • 如需获取所有支持的时区列表,可请求http://worldtimeapi.org/api/timezone获取完整列表

内容的提问来源于stack exchange,提问作者JaloliddinPage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:36:03