美文网首页
java8时间工具类

java8时间工具类

作者: wojiaowangyu | 来源:发表于2018-09-18 19:51 被阅读0次
java8时间工具类,以前的Date过时了。

public class DateTimeUtil {

public static final String LINE_FORMATTER = "yyyy-MM-dd HH:mm:ss";
public static final String CN_FORMAT = "yyyy年MM月dd日 HH时mm分ss秒";

/**
 * 格式化时间
 * 
 * @param date
 *            被格式化的LocalDateTime时间
 * @param format
 *            格式
 * @return 格式化的字符串
 */
public static String format(LocalDateTime date, String format) {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
    return date.format(formatter);
}

/**
 * 格式化时间,时区是当前系统确定
 * 
 * @param date
 *            被格式化的Date时间
 * @param format
 *            格式
 * @return 格式化的字符串
 */
public static String format(Date date, String format) {
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
    return localDateTime.format(formatter);
}

/**
 * 转换Date为LocalDateTime,时区是当前系统确定
 * 
 * @param date
 * @return
 */
public static LocalDateTime parse(Date date) {
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    return LocalDateTime.ofInstant(instant, zone);
}

/**
 * 转化日期字符串到对象,如果不包含time,默认为00:00:00
 * 
 * @param date
 * @param format
 * @return LocalDateTime对象
 */
public static LocalDateTime parse(String date, String format) {
    if (!date.trim().contains(" ")) {
        date += " 00:00:00";
    } else {
        // final String[] dt = date.split(" ");
        // final
    }
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
    return LocalDateTime.parse(date, formatter);
}

/**
 * 获取日期时间毫秒值
 * 
 * @param date
 *            时间日期
 * @param formats
 *            时间日期格式, 默认格式=yyyy-MM-dd HH:mm:ss
 * @return null=获取失败,否则获取成功
 */
public static Long getDateTimeMsec(LocalDateTime date) {
    Long msec = null;
    try {
        msec = date.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return msec;
}

/**
 * 替换当前时间的时分秒
 * 
 * @param hour
 *            小时
 * @param min
 *            分钟
 * @param sec
 *            秒
 * @return 时间秒数
 */
public static long getOperationMsecNearNow(int hour, int min, int sec) {
    LocalDateTime now = LocalDateTime.now();
    now.plusHours(hour);
    now.plusMinutes(min);
    now.plusSeconds(sec);
    return getDateTimeMsec(now);
}

/**
 * 将时间戳转成时间,时区是当前系统确定
 * 
 * @param time
 * @return LocalDateTime时间
 */
public static LocalDateTime parse(Long time) {
    return LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault());
}

public static void main(String[] args) {
    System.out.println(format(new Date(), CN_FORMAT));
}

}

相关文章

网友评论

      本文标题:java8时间工具类

      本文链接:https://www.haomeiwen.com/subject/cobmnftx.html