首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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);
    }
}
返回列表