InfluxDB转北京时间,rfc3339转北京时间

发布时间 2023-08-28 13:47:11作者: 烤乳鸽

一、InfluxDB中的时间格式

influxDB支持三种时间格式:epoch_time、rfc3339_date_time_stringrfc3339_like_date_time_string

(1)epoch_time格式

就是时间戳格式,我们一般使用的10位和13位,在influxdb中使用的时间戳是19位,单位是ns(纳秒)

(2)rfc3339_date_time_string 格式

这种格式为: 

'YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ'

  其中YYYY-MM-DD表示年月日,T出现在字符串中,表示Time元素的开始,HH:MM:SS表示时分秒,nnnnnnnnn是可选的,如果不写则会被设置为000000000。注意,如果使用这种时间格式,需要使用单引号 ’ 将时间括起来。

(3)rfc3339_like_date_time_string

这种格式:

'YYYY-MM-DD HH:MM:SS.nnnnnnnnn'

  其中HH::MM:SS.nnnnnnnnn可以省略,必须用单引号包括起来。

二、将时间转为北京时间

import java.util.Date;
import java.util.Locale;
import org.joda.time.DateTime;
  public static String toBeijingTime(String date){
        DateTime dateTime = new DateTime(date);
        long timeInMillis = dateTime.toCalendar(Locale.getDefault()).getTimeInMillis();
        Date date1 = new Date(timeInMillis);

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = format.format(date1);
        return time;
    } 

  注意:DateTime要引入正确的依赖!!!  

import org.joda.time.DtaeTime

  

 

 这里date “2023-08-25T06:06:27.0066874Z”用的rfc3339_date_time_string格式,默认采用UTC时间,即国际标准时间,比北京时间慢8个小时。