import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; import java.time.temporal.ChronoUnit; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Objects; /** * @description: 时间类型转换 * @author: Sarira * @email: * @date: 2021/03/27 11:23 */ public class DateUtilsConvert { private static Logger logger = LoggerFactory.getLogger(DateUtilsConvert.class); //LocalDateTime转Calendar public static Calendar convertLDTTOCalendar(LocalDateTime localDateTime) { if (Objects.nonNull(localDateTime)) { Calendar localDateTimeCalendar = GregorianCalendar.from(ZonedDateTime.of(localDateTime, ZoneId.systemDefault())); return localDateTimeCalendar; } return null; } //ZonedDateTime转Calendar public static Calendar convertZDTTOCalendar(ZonedDateTime zonedDateTime) { Calendar zonedDateTimeInstantCalendar = GregorianCalendar.from(zonedDateTime); return zonedDateTimeInstantCalendar; } //LocalDate转Calendar public static Calendar convertLDTOCalendar(LocalDate localDate) { Calendar localDateCalendar = GregorianCalendar.from(localDate.atStartOfDay(ZoneId.systemDefault())); return localDateCalendar; } //Date转Calendar public static Calendar convertDTOCalendar(Date date) { Calendar dateCalendar = Calendar.getInstance(); dateCalendar.setTime(date); return dateCalendar; } //Timestamp转Calendar public static Calendar convertTimeStampTOCalendar(Timestamp timestamp) { Calendar timestampCalendar = Calendar.getInstance(); timestampCalendar.setTimeInMillis(timestamp.getTime()); return timestampCalendar; } //Instant转Calendar public static Calendar convertInstantTOCalendar(Instant instant) { Calendar instantCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(instant, ZoneId.systemDefault())); return instantCalendar; } //Calendar转Instant public static Instant convertCalTOIns(Calendar calendar) { Instant instant = calendar.toInstant(); return instant; } //Calendar转LocalDateTime public static LocalDateTime convertCalTOLDT(Calendar calendar) { if (Objects.nonNull(calendar)) { LocalDateTime calendarLocalDateTime = LocalDateTime.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault()); return calendarLocalDateTime; } return null; } //Calendar转ZonedDateTime public static ZonedDateTime convertCalTOZon(Calendar calendar) { ZonedDateTime calendarZonedDateTime = ZonedDateTime.ofInstant(calendar.toInstant(), ZoneId.systemDefault()); return calendarZonedDateTime; } //Calendar转Date public static Date convertCalTOD(Calendar calendar) { Date calendarDate = calendar.getTime(); return calendarDate; } //Calendar转Timestamp public static Timestamp convertCalTOTimpStamp(Calendar calendar) { Timestamp calendarTimestamp = new Timestamp(calendar.getTimeInMillis()); return calendarTimestamp; } /** * 获取两个日期的差 field参数为ChronoUnit.* * @param startTime * @param endTime * @param field 单位(年月日时分秒) * @return */ public static long betweenTwoTime(LocalDateTime startTime, LocalDateTime endTime, ChronoUnit field) { Period period = Period.between(LocalDate.from(startTime), LocalDate.from(endTime)); if (field == ChronoUnit.YEARS) return period.getYears(); if (field == ChronoUnit.MONTHS) return period.getYears() * 12 + period.getMonths(); return field.between(startTime, endTime); } /** * localDateTime转Date * @param localDateTime * @return */ public static Date LDTTODate(LocalDateTime localDateTime) { return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); } public static Calendar DTOCld(Date date) { Calendar instance = Calendar.getInstance(); instance.setTime(date); return instance; } public static LocalDateTime manyDaysAgo(Integer days) { if (Objects.isNull(days)) { return LocalDateTime.now(); } else { return LocalDateTime.now().plusDays(days); } } //时间戳转换日期 public static Date stampToTime(Long time) { try { SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); String d = format.format(time); Date date = format.parse(d); return date; } catch (ParseException e) { e.printStackTrace(); } return null; } public static LocalDateTime timestamToDatetime(long timestamp){ Instant instant = Instant.ofEpochMilli(timestamp); return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } public long datatimeToTimestamp(LocalDateTime ldt){ long timestamp = ldt.toInstant(ZoneOffset.of("+8")).toEpochMilli(); return timestamp; } /** * 将Date类转换为XMLGregorianCalendar */ public static XMLGregorianCalendar dateToXmlDate(Date date) { try { Calendar cal = Calendar.getInstance(); cal.setTime(date); DatatypeFactory dtf = DatatypeFactory.newInstance(); XMLGregorianCalendar dateType = dtf.newXMLGregorianCalendar(); dateType.setYear(cal.get(Calendar.YEAR)); //由于Calendar.MONTH取值范围为0~11,需要加1 dateType.setMonth(cal.get(Calendar.MONTH) + 1); dateType.setDay(cal.get(Calendar.DAY_OF_MONTH)); dateType.setHour(cal.get(Calendar.HOUR_OF_DAY)); dateType.setMinute(cal.get(Calendar.MINUTE)); dateType.setSecond(cal.get(Calendar.SECOND)); dateType.setMillisecond(cal.get(Calendar.MILLISECOND)); dateType.setTimezone(Calendar.ALL_STYLES); return dateType; } catch (DatatypeConfigurationException e) { return XMLGregorianCalendarImpl.parse("2017-01-01"); } } // public static void main(String[] args) { // System.out.println(DateUtil.toUtc(timestamToDatetime(1603225991000L))); // LocalDateTime localDateTime = DateUtil.toUtc(timestamToDatetime(1603225991000L)); // String s = DateUtil.toUtc(timestamToDatetime(1603225991000L)).toString(); // s = s + ".000Z"; // System.out.println(s); // System.out.println(DateUtil.localDateTimeToXMLGregorianCalendar( // DateUtil.toUtc(timestamToDatetime(1603225991000L))).toString()); // System.out.println(dateToXmlDate(stampToTime(1603225991000L))); // XMLGregorianCalendar xmlGregorianCalendar = dateToXmlDate(stampToTime(1603225991000L)); // String s = dateToXmlDate(stampToTime(1603225991000L)).toString(); // System.out.println(DateUtilsConvert.dateToXmlDate(DateUtilsConvert.stampToTime(Long.valueOf(JSON.toJSONString // (null)))).toString()); // } public static String getJsonToken(String token) { if (Objects.nonNull(token)) { StringBuilder builder = new StringBuilder(); StringBuilder append = builder.append("{\"").append("token\":").append("\"").append(token).append("\"").append("}"); String jsonToken = append.toString(); System.out.println(jsonToken); return jsonToken; } return null; } public static String getJsonValue(String key, String value) { if (Objects.nonNull(key) && Objects.nonNull(value)) { StringBuilder builder = new StringBuilder(); StringBuilder append = builder.append("{\"").append(key).append("\":").append("\"").append(value).append("\"").append("}"); String jsonToken = append.toString(); System.out.println(jsonToken); return jsonToken; } return null; } }
时间转换工具类大全
最新推荐文章于 2024-06-22 11:08:31 发布