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类型

你可能感兴趣的:(java)