赞
踩
世界协调时间(UTC)是一个标准的时间参考,通常被用于跨越不同时区的时间标准。要将 UTC 时间转换为中国时间(中国标准时间),你需要将时间加上8个小时,因为中国位于 UTC+8 时区。
初中知识的时区问题了。
给定 UTC 时间 2024-05-08T02:21:45Z,你可以通过以下方式转换为中国标准时间:
将 UTC 时间加上 8 个小时。
结果将是中国标准时间。
通过添加 8 个小时:
UTC 时间:2024-05-08T02:21:45Z
中国标准时间:2024-05-08T10:21:45(即当天早上 10 点 21 分 45 秒)。
- package fuak.ioe.util;
-
- import com.fasterxml.jackson.annotation.JsonFormat;
- import com.fasterxml.jackson.annotation.JsonProperty;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.fasterxml.jackson.databind.ObjectMapper;
-
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
-
- public class APIResponseUtil {
- @JsonProperty("status")
- private Status status;
-
- @JsonProperty("data")
- private Map<String, Object> data = new HashMap<>();
-
- @JsonProperty("metadata")
- private Metadata metadata;
-
- public APIResponseUtil() {
- // 默认构造函数
- }
-
- public APIResponseUtil(Status status, Metadata metadata) {
- this.status = status;
- this.metadata = metadata;
- }
-
- // Getter 和 Setter 方法
- public Status getStatus() {
- return status;
- }
-
- public void setStatus(Status status) {
- this.status = status;
- }
-
- public Map<String, Object> getData() {
- return data;
- }
-
- public Metadata getMetadata() {
- return metadata;
- }
-
- public void setMetadata(Metadata metadata) {
- this.metadata = metadata;
- }
-
- // 内部类定义
- public static class Status {
- @JsonProperty("code")
- private int code;
-
- @JsonProperty("message")
- private String message;
-
- public Status() {
- // 默认构造函数
- }
-
- public Status(int code, String message) {
- this.code = code;
- this.message = message;
- }
-
- // Getter 和 Setter 方法
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
- }
-
- public static class Metadata {
- @JsonProperty("requestId")
- private String requestId;
-
- @JsonProperty("timestamp")
- @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'")
- private Date timestamp;
-
- public Metadata() {
- // 默认构造函数
- }
-
- public Metadata(String requestId, Date timestamp) {
- this.requestId = requestId;
- this.timestamp = timestamp;
- }
-
- // Getter 和 Setter 方法
- public String getRequestId() {
- return requestId;
- }
-
- public void setRequestId(String requestId) {
- this.requestId = requestId;
- }
-
- public Date getTimestamp() {
- return timestamp;
- }
-
- public void setTimestamp(Date timestamp) {
- this.timestamp = timestamp;
- }
- }
-
- @Override
- public String toString() {
- ObjectMapper objectMapper = new ObjectMapper();
- try {
- return objectMapper.writeValueAsString(this);
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- return "{}"; // 如果转换失败,返回空对象
- }
- }
- }

在 Maven 项目中使用 Jackson 库,您需要在项目的 pom.xml
文件中添加相应的依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.6</version>
</dependency>
根据公司给定的前后端json返回格式要求
tatus:包含状态码和描述消息,提供了关于操作执行结果的简要信息。
data:包含请求返回的实际数据。在这个示例中,它包括userId、userName和age字段。
metadata:包含与请求或响应相关的其他元数据。
- package fuak.ioe.test;
-
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
-
- import org.junit.Test;
-
- import zck.ioe.util.APIResponseUtil;
-
- public class APIResponseTest {
-
- @Test
- public void testAPIResponse() {
- // 创建 Status 对象
- APIResponseUtil.Status status = new APIResponseUtil.Status(0, "success");
-
- // 创建 data 对象
- Map<String, Object> data = new HashMap<>();
- data.put("userId", 123);
- data.put("userName", "John");
- data.put("age", 25);
- data.put("email", "john@example.com");
-
- // 创建 Metadata 对象
- Date timestamp = new Date();
- APIResponseUtil.Metadata metadata = new APIResponseUtil.Metadata("abc123", timestamp);
-
- // 创建 APIResponse 对象
- APIResponseUtil response = new APIResponseUtil(status, metadata);
-
- // 设置 data
- response.getData().putAll(data);
-
- // 打印 JSON 格式的响应
- String jsonResponse = response.toString();
- System.out.println(jsonResponse);
-
-
- }
- }

- 呈现
-
- {
- "status": {
- "code": 0,
- "message": "success"
- },
- "data": {
- "userName": "John",
- "userId": 123,
- "age": 25,
- "email": "john@example.com"
- },
- "metadata": {
- "requestId": "abc123",
- "timestamp": "2024-05-08T02:24:51Z"
- }
- }

我们首先创建了一个 APIResponse.Status 对象,并传入状态码和消息。
然后创建了一个 data 的 HashMap 对象,并添加一些示例数据。
接着,我们创建了一个 APIResponse.Metadata 对象,其中包含请求的 requestId 和当前时间戳。
最后,我们通过新的构造函数创建了 APIResponse 对象,将 status 和 metadata 传入。
使用 response.getData().putAll(data); 将预设的数据添加到 APIResponse 对象的 data 中。
最后,将 APIResponse 对象转换为 JSON 格式的字符串,并打印出来。
最最后可以将json 回调给前端,测试人员可以通过metadata 中的时间戳和请求id 进行调试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。