最近在一个需求中,有一个将java.util.Date与java.util.Calendar互相转换的要求,由于不常用Calendar,遂将转换的代码整理至此,方便查阅。
本地时间转为UTC时间 Calendar => Date
public static Date calendar2Utcdate(Calendar calendar ) { /** 取得时间偏移量 */ int zoneOffset = calendar.get(java.util.Calendar.ZONE_OFFSET); /** 取得夏令时差 */ int dstOffset = calendar.get(java.util.Calendar.DST_OFFSET); /** 从本地时间里扣除这些差量,即可以取得UTC时间*/ // calendar.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset)); /** 取得的时间就是UTC标准时间 */ Date utcDate=new Date(calendar.getTimeInMillis()); /** 将时间转为指定格式2019-06-21T05:46:02.231Z */ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd‘T‘HH:mm:ss.SSS‘Z‘", Locale.US); System.out.println(simpleDateFormat.format(utcDate)); return utcDate; }
Date String => Date
/** * string 转 date * @param dateString * @return */ public static Date str2Date(String dateString) { SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date = null; try { date = sdFormat.parse(dateString); } catch (ParseException e) { e.printStackTrace(); } return date; }
Date => Calendar(UTC)
public static Calendar date2Calendar(Date date) { Calendar calendar = Calendar.getInstance(Locale.US); calendar.setTime(date); return calendar; }
LocalDateTime => Date
Date.from((##.atZone(ZoneId.systemDefault())).toInstant())
java.util.Calendar与java.util.Date的互相转换
原文:https://www.cnblogs.com/xfyy-2020/p/12809612.html