java8代码-时间工具类

package com.ven.utils;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * java 8  LocalDateTime 时间转换工具类
 * 
 * @author xiaowen
 * @date 2016年11月1日 @ version 1.0
 */
public  final class TimeUtils {

	// 默认时间格式
	private static final DateTimeFormatter DEFAULT_DATETIME_FORMATTER = TimeFormat.SHORT_DATE_PATTERN_LINE.formatter;

	// 无参数的构造函数,防止被实例化
	private TimeUtils() {};

	/**
	 * String 转化为 LocalDateTime
	 * 
	 * @param timeStr
	 *            被转化的字符串
	 * @return LocalDateTime
	 */
	public static LocalDateTime parseTime(String timeStr) {
		return LocalDateTime.parse(timeStr, DEFAULT_DATETIME_FORMATTER);

	}

	/**
	 * String 转化为 LocalDateTime
	 * 
	 * @param timeStr
	 *            被转化的字符串
	 * @param timeFormat
	 *            转化的时间格式
	 * @return LocalDateTime
	 */
	public static LocalDateTime parseTime(String timeStr, TimeFormat timeFormat) {
		return LocalDateTime.parse(timeStr, timeFormat.formatter);

	}

	/**
	 * LocalDateTime 转化为String
	 * 
	 * @param time
	 *            LocalDateTime
	 * @return String
	 */
	public static String parseTime(LocalDateTime time) {
		return DEFAULT_DATETIME_FORMATTER.format(time);

	}

	/**
	 * LocalDateTime 时间转 String
	 * 
	 * @param time
	 *            LocalDateTime
	 * @param format
	 *            时间格式
	 * @return String
	 */
	public static String parseTime(LocalDateTime time, TimeFormat format) {
		return format.formatter.format(time);

	}

	/**
	 * 获取当前时间
	 * 
	 * @return
	 */
	public static String getCurrentDateTime() {
		return DEFAULT_DATETIME_FORMATTER.format(LocalDateTime.now());
	}

	/**
	 * 获取当前时间
	 * 
	 * @param timeFormat
	 *            时间格式
	 * @return
	 */
	public static String getCurrentDateTime(TimeFormat timeFormat) {
		return timeFormat.formatter.format(LocalDateTime.now());
	}

	/**
	 * 内部枚举类
	 * 
	 * @author xiaowen
	 * @date 2016年11月1日 @ version 1.0
	 */
	public enum TimeFormat {
		//短时间格式 年月日
		/**
		 *时间格式:yyyy-MM-dd
		 */
		SHORT_DATE_PATTERN_LINE("yyyy-MM-dd"),
		/**
		 *时间格式:yyyy/MM/dd
		 */
		SHORT_DATE_PATTERN_SLASH("yyyy/MM/dd"),
		/**
		 *时间格式:yyyy\\MM\\dd
		 */
		SHORT_DATE_PATTERN_DOUBLE_SLASH("yyyy\\MM\\dd"),
		/**
		 *时间格式:yyyyMMdd
		 */
		SHORT_DATE_PATTERN_NONE("yyyyMMdd"),

		// 长时间格式 年月日时分秒
		/**
		 *时间格式:yyyy-MM-dd HH:mm:ss
		 */
		LONG_DATE_PATTERN_LINE("yyyy-MM-dd HH:mm:ss"),

		/**
		 *时间格式:yyyy/MM/dd HH:mm:ss
		 */
		LONG_DATE_PATTERN_SLASH("yyyy/MM/dd HH:mm:ss"),
		/**
		 *时间格式:yyyy\\MM\\dd HH:mm:ss
		 */
		LONG_DATE_PATTERN_DOUBLE_SLASH("yyyy\\MM\\dd HH:mm:ss"),
		/**
		 *时间格式:yyyyMMdd HH:mm:ss
		 */
		LONG_DATE_PATTERN_NONE("yyyyMMdd HH:mm:ss"),

		// 长时间格式 年月日时分秒 带毫秒
		LONG_DATE_PATTERN_WITH_MILSEC_LINE("yyyy-MM-dd HH:mm:ss.SSS"),

		LONG_DATE_PATTERN_WITH_MILSEC_SLASH("yyyy/MM/dd HH:mm:ss.SSS"),

		LONG_DATE_PATTERN_WITH_MILSEC_DOUBLE_SLASH("yyyy\\MM\\dd HH:mm:ss.SSS"),

		LONG_DATE_PATTERN_WITH_MILSEC_NONE("yyyyMMdd HH:mm:ss.SSS");

		private transient DateTimeFormatter formatter;

		TimeFormat(String pattern) {
			formatter = DateTimeFormatter.ofPattern(pattern);

		}
	}
	/**
	 * 测试
	 * @param args
	 */
	public static void main(String[] args) {
		//获取当前时间
		System.out.println(TimeUtils.getCurrentDateTime());
		
		System.out.println(TimeUtils.getCurrentDateTime(TimeFormat.LONG_DATE_PATTERN_LINE));
	}
}


版权声明:本文为u011659172原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。