/*** @param strTime 示例:"2020-01-01 23:59:59"* @return "2020-01-01T15:59:59Z"*/ //传入一个北京时间(字符串), 返回ISO-8601时间(字符串)格式出去. public static String getISOTime(String strTime) {try {Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(strTime);//把时间转换成ISO-8601格式, 需要减去8个小时String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.HOUR, -8);Date newTime = calendar.getTime();String isoTime = DateFormatUtils.format(newTime, pattern);return isoTime;} catch (ParseException e) {e.printStackTrace();}return null; }//直接传入一个时间格式, 返回ISO-8601时间(字符串)格式出去. public static String getISOTimeByDate(Date date) {//把时间转换成ISO-8601格式, 需要减去8个小时String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.HOUR, -8);return DateFormatUtils.format(calendar.getTime(), pattern); }/*** @param isoTime 示例:"2021-01-19T16:00:00Z"* @return "2021-01-20 00:00:00"*/ //传入一个ISO-8601时间格式, 返回中国标准时间(字符串)格式出去 public static String getTimeByISO(String isoTime) {try {Date isoDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(isoTime);Calendar calendar = Calendar.getInstance();calendar.setTime(isoDate);calendar.add(Calendar.HOUR, 8);//ISO-8601时间格式的转成中国标准时间格式的,需要加上8个小时.Date newTime = calendar.getTime();String strTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(newTime);return strTime;} catch (ParseException e) {e.printStackTrace();}return null; }//传入一个ISO-8601时间格式, 返回中国标准时间格式出去 public static Date getDateByISO(String isoTime) {try {Date isoDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(isoTime);Calendar calendar = Calendar.getInstance();calendar.setTime(isoDate);calendar.add(Calendar.HOUR, 8);//ISO-8601时间格式的转成中国标准时间格式的,需要加上8个小时.Date newTime = calendar.getTime();return newTime;} catch (ParseException e) {e.printStackTrace();}return null; }