java对日期相关操作方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_17522211/article/details/84544975

maven:

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>4.0.0</version>
</dependency>

java:

import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import org.springframework.util.Assert;

import cn.hutool.core.date.DateUtil;

/**
 * 日期工具类
 */
public class DateUtilz {

	/**
	 * String转换为Date
	 * 说明:SimpleDateFormat是DateFormat的子类。
	 * 在DateFormat中,也可以调用parse方法来解析日期型的数据,不过不推荐这样做。
	 * 建议还是采用SimpleDateFormat类中parse(Strng source, ParsePosition positon)来解析。
	 * 具体原因,因为DateFormat中的parse方法有bug且不支持定位解析。
	 * @return 分析成功则返回分析得到的日期,失败则返回null
	 */
	public static Date stringToDate(String date, String pattern) {
	    return stringToDate(date, pattern, Locale.CHINA);
	}
	
	/**
	 * String转换为Date
	 * @param date
	 * @param pattern
	 * @param locale
	 * @return 分析成功则返回分析得到的日期,失败则返回null
	 */
	public static Date stringToDate(String date, String pattern, Locale locale) {
		SimpleDateFormat formate = new SimpleDateFormat(pattern, locale);
	    Date newDate = formate.parse(date, new ParsePosition(0));
	    Assert.notNull(newDate, "日期可能与所给格式不匹配");
	    return newDate;
	}

	/**
	 * Date转换为String
	 */
	public static String dateToString(Date date, String pattern) {
        return DateUtil.format(date, pattern);
	}
	
	/**
	 * 返回指定格式的当天日期
	 * 例如:getCurrentDate("yyyy-MM-dd");
	 * @param pattern 时间样式
	 * @return 返回指定格式的当天日期
	 */
	public static String getCurrentDate(String pattern) {
		return DateUtil.format(new Date(), pattern);
	}
	
	// 获取过去第几天的日期
	public static String getPastDate(int past,String pattern) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
		return DateUtil.format(calendar.getTime(), pattern);
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_17522211/article/details/84544975