java積累----ISO8601格式時間轉化為Datetime型別
阿新 • • 發佈:2018-10-31
轉載請註明出處: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); } }