300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > InfluxDB 时间转变错误 yyyy-MM-dd‘T‘HH:mm:ss.SSS转 yyyy-MM-dd HH:mm:ss

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

时间:2019-06-30 10:22:51

相关推荐

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

InfluxDB 时间转变错误

错误现象 :解决问题

错误现象 :

Unparseable date: “xxx-xxx-xxx“

查询时间格式 不对

“time”:“-10-11T14:12:59.686Z”

“time”:“-10-11T14:14:46.236Z”

“time”:“-10-11T14:16:57.564Z”

“time”:“-10-11T15:56:16.155Z”

“time”:“-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 {//-09-19T09:58:34.926Z 转换为 -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();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。