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 发布
3629

被折叠的 条评论
为什么被折叠?



