日期工具类DateUtils
CreateTime--2017年5月27日08:48:00
Author:Marydon
DateUtils.java-对日期类的进一步封装
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 封装日期类 * * @author Marydon * @createTime 2017年5月27日上午8:49:50 * @updateTime * @Email:Marydon2017@163.com * @version:1.0.0 */ public class DateUtils { /** * 对日期进行格式化 * @param date * 要转换的日期 * @param pattern * 希望转换成什么样的格式 * @return str * 格式化后的日期字符串 */ public static String dateFormat(Date date, String pattern){ SimpleDateFormat sdf = new SimpleDateFormat(pattern); String str = sdf.format(date); return str; } /** * 根据初始日期推算期望(向前/向后)日期 * @param initTime * 初始日期(initTime可以是null、Date、String数据类型) * @param n * 向前/向后推算n天(n可以是正整数、0、负整数) * @return * 推算后的日期字符串 */ public static String getCalculateDay(Object initTime,int n){ // 返回推算后的日期 String calculateDay = ""; try { // 实例化日历类Calendar Calendar calendar = Calendar.getInstance(); // 定义日期格式化样式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 初始日期 Date initDate = null; // 判断参数类型 if (null == initTime) { // 取系统当前时间 initDate = new Date(); } else if (initTime instanceof Date) { initDate = (Date)initTime; } else { // 日期格式字符串转换成日期类Date initDate = sdf.parse((String)initTime); } // 设置日历时间 calendar.setTime(initDate); // 设置推算后的日历时间 calendar.add(Calendar.DATE, n); // 获取推算后的日期 Date calculateDate = calendar.getTime(); // 进行格式化 calculateDay = sdf.format(calculateDate); } catch(ParseException e) { return calculateDay; } return calculateDay; } }
根据初始日期推算期望(向前/向后)日期之方法二
/** * 根据初始日期推算期望(向前/向后)日期 * @param initTime * 初始日期 * @param n * 向前/向后推算n天 * @return * 推算后的日期 */ public static String getCalculateDay(Object initTime,int n) throws ParseException{ // 返回推算后的日期 String calculateDay = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 初始日期 Date initDate = null; if (initTime instanceof Date) initDate = (Date)initTime; else initDate = sdf.parse((String)initTime); // 转换成距离1970年0时0分的毫秒数 Long initMilliSeconds = initDate.getTime(); // 一天代表的毫秒数 int oneDayTime = 24 * 60 * 60 * 1000; initMilliSeconds += oneDayTime * n; // 推算出的日期 Date calculateDate = new Date(initMilliSeconds); calculateDay = sdf.format(calculateDate); return calculateDay; }
UpdateTime--2017年8月10日17:12:21
获取系统当前时间
方法一:
调用上面的DateUtils.dateFormat(new Date(),"yyyy-MM-dd") 即可
方法二:
public static Calendar calendar = Calendar.getInstance(); /** * 获取当前年份 * * @return */ public static int getCurYear() { return calendar.get(Calendar.YEAR); } /** * 获取当前月份 * * @return */ public static int getJCMMonth() { return calendar.get(Calendar.MONTH) + 1; } /** * 获取当前天 * * @return */ public static int getJCMDay() { return calendar.get(Calendar.DATE); } /** * 获取当前月份(01,02,03......11,12) * * @return */ public static String getJCMMonthF() { return formatDate(calendar.get(Calendar.MONTH) + 1); } /** * 获取当前天(01,02,03......29,30) * * @return */ public static String getJCMDayF() { return formatDate(calendar.get(Calendar.DATE)); } /** * 把月份和日期修改为两位数字 * * @param date * @return */ public static String formatDate(int date) { String date2 = "0"; if (date <= 9) { date2 += String.valueOf(date); } else { date2 = String.valueOf(date); } return date2; }
测试:
// 获取系统当前时间 // 方式一 // 1.这种方式返回的月和日如果没有值小于10,不会自动加0; // 2.int转String,直接拼接字符串会自动将结果转换成String System.out.println(getCurYear() + "-" + getJCMMonth() + "-" + getJCMDay());//2017-8-9 // 方式二 System.out.println(getCurYear() + "-" + getJCMMonthF() + "-" + getJCMDayF());//2017-08-09