1. 程式人生 > >java積累----ISO8601格式時間轉化為Datetime型別

java積累----ISO8601格式時間轉化為Datetime型別

轉載請註明出處:java積累----ISO8601格式時間轉化為Datetime型別

api中如果需要根據時間來做篩選,需要有請求的時間戳。時間引數的日期格式按照ISO8601標準表示,並需要使用UTC時間。格式為:YYYY-MM-DDThh:mm:ssZ例如,2018-10-11T12:00:00Z(為北京時間2018年10月11日的20點0分0秒。因為北京是8時區,所以UTC時間加上8小時)。

方法如下:

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        String text = "2018-10-11T11:54:30.207Z";
        DateTimeFormatter parser = ISODateTimeFormat.dateTime();
        DateTime dt = parser.parseDateTime(text);

        DateTimeFormatter formatter = DateTimeFormat.mediumDateTime();
        System.out.println(formatter.print(dt));

        //轉化成其他格式
		//日期輸出格式  
       String targetFormat = "yyyy-MM-dd HH:mm:ss"; 
       DateFormat format = new SimpleDateFormat(origFormat);  
       Date date = format.parse(text);  
       format = new SimpleDateFormat(targetFormat);  
       String dateString = format.format(date);  
       System.out.println(dateString);
	   
	   //data轉化成ISO8601格式時間
	   TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");  
        df.setTimeZone(tz);  
        String nowAsISO = df.format(date); 
    }
}

轉載請註明出處:java積累----ISO8601格式時間轉化為Datetime型別