java對日期相關操作方法
阿新 • • 發佈:2018-11-27
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); } }