InfluxDB转北京时间,rfc3339转北京时间
一、InfluxDB中的时间格式
influxDB支持三种时间格式:epoch_time、rfc3339_date_time_string
和rfc3339_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个小时。