LocalDateTime基本使用

 1、时间戳相互转换,2、日期对象与字符串相互转换

package com.baye.common.core.util;


import org.springframework.util.StringUtils;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 *	日期时间工具类
 * @author sunyiran
 * @date 2018-12-07
 */
public class DateTimeUtils {


	/**
	 * 根据时间获取时间戳
	 * @param dateTime
	 * @return
	 */
	public static Long dateTimeToTimestamp(LocalDateTime dateTime) {

		if (dateTime == null) {
			return null;
		}
		return dateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
	}


	/**
	 * 根据时间戳获取日期时间
	 * @param timestamp
	 * @return
	 */
	public static LocalDateTime timestampToDateTime(Long timestamp) {
		return timestamp==null?null:LocalDateTime.ofEpochSecond(timestamp,0,ZoneOffset.ofHours(8));
	}


	/**
	 * 获取指定格式的日期字符串
	 * @param dateTime
	 * @param format 为null或者空时默认为yyyy-MM-dd HH:mm:ss
	 * @return
	 */
	public static String dateTimeToString(@NotNull LocalDateTime dateTime, String format) {
		//时间转字符串格式化
		if (StringUtils.isEmpty(format)) {
			format = "yyyy-MM-dd HH:mm:ss";
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format,Locale.SIMPLIFIED_CHINESE);
		return dateTime.format(formatter);
	}


	/**
	 * 根据日期时间字符串获取日期时间
	 * @param datetime
	 * @param format 为null或者空时默认为yyyy-MM-dd HH:mm:ss
	 * @return
	 */
	public static LocalDateTime stringToDateTime(@NotNull String datetime,String format) {

		if (StringUtils.isEmpty(format)) {
			format = "yyyy-MM-dd HH:mm:ss";
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
		return LocalDateTime.parse(datetime,formatter);
	}


	public static void main(String[] args) {
		System.out.println(stringToDateTime("2018-12-07 09:50:33",null));
	}
}

 

你可能感兴趣的:(后端技术杂述)