[JAVA]:JSONObject 修改 date 格式

这篇博客介绍如何在Java中使用JSONObject根据指定的日期格式来修改dateValue。内容涉及JSON对象与日期类型的交互,提供了相关的测试数据和操作示例。

JSONObject 根据指定日期格式修改dateValue :

    public JSONObject convertJsonDateValue(JSONObject jsonObject, String sourceFormat, 
        String targetFormat) throws ParseException{
        if(jsonObject == null){
            return null;
        }
        JSONArray jsonArray = jsonObject.getJSONArray("groupName");
        for(int i = 0; i < jsonArray.size(); i++){
            JSONObject jo = jsonArray.getJSONObject(i);
            String dateStr = jo.getString("dateField");
            String dateValue = convertDateString(dateStr, sourceFormat, targetFormat);
            jo.put("dateField", dateValue);
        }
        return jsonObject;
    }

    public String convertDateString(String date, String sourceFormat, String targetFormat){
        SimpleDateFormat sdf = new SimpleDateFormat(sourceFormat);
        Date date = sdf.parse(dateStr);
        SimpleDateFormat formatter = new SimpleDateFormat(targetFormat);
        String dateValue = formatter.format(date);
        return dateValue;
    }

测试数据:

// String jsonStr = [{"name":"Jarvis","groupName":[{"key001":"value001","dateField":"2016-10-20 T 17:30:20"},{"key002":"value002","dateField":"2016-10-21 T 17:30:20"}]}]
    JSONObject jsonObject = new JSONObject(jsonStr);
    JSONObject jo = convertJsonDateValue(jsonObject, "yyyy-MM-dd 'T' HH:mm:ss", "yyyy/MM/dd HH:mm:ss");
    System.out.println(jo.toString());
加载配置: 30 个参数 配置加载完成,检查点时间: Fri Aug 01 08:22:46 CST 2025 java.lang.NullPointerException: No key set. This method should not be called outside of a keyed context. at org.apache.flink.util.Preconditions.checkNotNull(Preconditions.java:76) at org.apache.flink.runtime.state.heap.StateTable.checkKeyNamespacePreconditions(StateTable.java:270) at org.apache.flink.runtime.state.heap.StateTable.get(StateTable.java:260) at org.apache.flink.runtime.state.heap.StateTable.get(StateTable.java:143) at org.apache.flink.runtime.state.heap.HeapMapState.get(HeapMapState.java:86) at org.apache.flink.runtime.state.ttl.TtlMapState.lambda$getWrapped$0(TtlMapState.java:64) at org.apache.flink.runtime.state.ttl.AbstractTtlDecorator.getWrappedWithTtlCheckAndUpdate(AbstractTtlDecorator.java:97) at org.apache.flink.runtime.state.ttl.TtlMapState.getWrapped(TtlMapState.java:63) at org.apache.flink.runtime.state.ttl.TtlMapState.get(TtlMapState.java:57) at org.apache.flink.runtime.state.UserFacingMapState.get(UserFacingMapState.java:47) at com.tongchuang.realtime.mds.ULEDataanomalyanalysis$OptimizedAnomalyDetectionFunction.detectMissingTags(ULEDataanomalyanalysis.java:665) at com.tongchuang.realtime.mds.ULEDataanomalyanalysis$OptimizedAnomalyDetectionFunction.processBroadcastElement(ULEDataanomalyanalysis.java:614) at com.tongchuang.realtime.mds.ULEDataanomalyanalysis$OptimizedAnomalyDetectionFunction.processBroadcastElement(ULEDataanomalyanalysis.java:220) at org.apache.flink.streaming.api.operators.co.CoBroadcastWithKeyedOperator.processElement2(CoBroadcastWithKeyedOperator.java:133) at org.apache.flink.streaming.runtime.io.StreamTwoInputProcessorFactory.processRecord2(StreamTwoInputProcessorFactory.java:221) at org.apache.flink.streaming.runtime.io.StreamTwoInputProcessorFactory.lambda$create$1(StreamTwoInputProcessorFactory.java:190) at org.apache.flink.streaming.runtime.io.StreamTwoInputProcessorFactory$StreamTaskNetworkOutput.emitRecord(StreamTwoInputProcessorFactory.java:291) at org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.processElement(AbstractStreamTaskNetworkInput.java:134) at org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.emitNext(AbstractStreamTaskNetworkInput.java:105) at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:66) at org.apache.flink.streaming.runtime.io.StreamTwoInputProcessor.processInput(StreamTwoInputProcessor.java:98) at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:423) at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:204) at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:684) at org.apache.flink.streaming.runtime.tasks.StreamTask.executeInvoke(StreamTask.java:639) at org.apache.flink.streaming.runtime.tasks.StreamTask.runWithCleanUpOnFail(StreamTask.java:650) at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:623) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:779) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:566) at java.lang.Thread.run(Thread.java:745)
最新发布
08-02
报错信息Content-Length: 476 Connection: keep-alive Content-Type: application/json; charset=utf-8 Date: Tue, 11 Mar 2025 07:11:15 GMT Server: Microsoft-HTTPAPI/2.0 Strict-Transport-Securi"..."c\u56e0\u4e3a\u89c6\u56fe DimAttributeProjTable \u7684\u8868 ProjTable \u4e2d\u4e0d\u5b58\u5728\u8bb0\u5f55\u3002","Level":"Error"}] Server-Timing: total;dur=567.0874 Content-Security-Policy: frame- 2025-03-11 15:11:15,640 ERROR A2 - [null] WeaverHttp&HS2249&15:11:08&/workflow/request/RequestOperation.jsp-295158[weaverHAN.action.D365PersonalExpenseAccountP.D365PersonalExpenseAccountP:146] - weaverHAN.action.D365PersonalExpenseAccountP.D365PersonalExpenseAccountP net.sf.json.JSONException: A JSONObject text must begin with '{' at character 1 of rror when reading response headers: small read buffer. Increase ReadBufferSize. Buffer size=4096, contents: "HTTP/1.1 200 OK Content-Length: 476 Connection: keep-alive Content-Type: application/json; charset=utf-8 Date: Tue, 11 Mar 2025 07:11:15 GMT Server: Microsoft-HTTPAPI/2.0 Strict-Transport-Securi"..."c\u56e0\u4e3a\u89c6\u56fe DimAttributeProjTable \u7684\u8868 ProjTable \u4e2d\u4e0d\u5b58\u5728\u8bb0\u5f55\u3002","Level":"Error"}] Server-Timing: total;dur=567.0874 Content-Security-Policy: frame- at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:512) at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:901) at net.sf.json.JSONObject._fromString(JSONObject.java:1122) at net.sf.json.JSONObject.fromObject(JSONObject.java:174) at net.sf.json.JSONObject.fromObject(JSONObject.java:148) at
03-12
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值