InfluxDB 时间转变错误 yyyy-MM-dd‘T‘HH:mm:ss.SSS转 yyyy-MM-dd HH:mm:ss

InfluxDB 时间转变错误

错误现象 :

Unparseable date: “xxx-xxx-xxx“

查询时间格式 不对

“time”:“2021-10-11T14:12:59.686Z”
“time”:“2021-10-11T14:14:46.236Z”
“time”:“2021-10-11T14:16:57.564Z”
“time”:“2021-10-11T15:56:16.155Z”
“time”:“2021-10-11T15:57:08.884Z”

在这里插入图片描述

解决问题

插入方法

import org.influxdb.InfluxDB;
import org.influxdb.dto.Point;

import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.concurrent.TimeUnit;

/**
 * 添加数据
 * @param object
 */
public void add(Object object){
    
    

    Point.Builder builder = Point.measurementByPOJO(object.getClass());

    // 所有属性转换为tag添加到point中
    // 调用time方法将 UTC时间转换为北京时间 设置进去
    Point point = builder
            .addFieldsFromPOJO(object)
            .time(LocalDateTime.now()
                    .plusHours(8)
                    .toInstant(ZoneOffset.of("+8"))
                    .toEpochMilli(), TimeUnit.MILLISECONDS)
            .build();

    // 存储的数据库名称
    influxDB.setDatabase(dbName);
    // 插入到表(Measurement)中
    influxDB.write(point);

    influxDB.close();
}

查询数据

import org.influxdb.impl.InfluxDBResultMapper;
import org.influxdb.dto.QueryResult;

/**
 * 通用查询数据方法
 * @param sql sql 语句
 * @param clazz 类 class
 * @param <T>
 * @return
 */
public <T> List<T> query(String sql, Class<T> clazz){
    
    
    QueryResult queryResult = influxDB.query(new Query(sql, dbName));

    influxDB.close();

    InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();

    return resultMapper.toPOJO(queryResult, clazz);
}

查询时间转换

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

try {
    
    
     //2020-09-19T09:58:34.926Z  转换为 2020-09-19 09:58:34  格式
     SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
     SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     Date date = utcFormat.parse(packInfo.getTime());

     packInfo.setTime(defaultFormat.format(date));
 } catch (ParseException e) {
    
    
     e.printStackTrace();
 }

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/120707881