Maison >Java >javaDidacticiel >Apprenez les opérations de date et de date du calendrier de Java
Cet article présente les opérations liées aux dates dans le processus de développement Java. Le code partagé est le suivant :
package jse; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * 常用日期操作 * * @author puck * createDate 2015-07-30 22:54:38 */ public class TestDate { public static void main(String[] args) throws ParseException, UnsupportedEncodingException { Calendar cal = Calendar.getInstance(); // cal.add(Calendar.DAY_OF_MONTH, -48); System.out.println(dateToString(cal)); } /** * 日期格式化 * @param date * @return */ public static String dateToString(Date date) { // SimpleDateFormat format = new SimpleDateFormat("y年MM月dd日 E HH时mm分ss秒", Locale.CHINA); // SimpleDateFormat format = new SimpleDateFormat("y年M月d日 E H时m分s秒", Locale.CHINA); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); // example return sdf.format(date); } /** * 日期格式化 * @param date * @return */ public static String dateToString(Calendar cal) { return dateToString(cal.getTime()); } /** * dateString 转 Calendar * * @param Date * format:2015-06-16 date * @return Calendar * @throws ParseException */ public static Calendar dateStringToCalendar(String dateStr) throws ParseException { // Calendar cal = Calendar.getInstance(); // cal.clear(); // cal.set(Integer.parseInt(date.substring(0, 4)), Integer.parseInt(date.substring(5, 7)) - 1, // Integer.parseInt(date.substring(8, 10))); // return cal; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(dateStr); Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal; } /** * dateString 转 Date * * @param Date * format:yyyy-MM-dd HH:mm:ss date * @return Calendar * @throws ParseException */ public static Date dateStringToDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.parse(date); } /** * Date Convert to Calendar * * @param date * @return */ public static Calendar dateToCalendar(Date date) { Calendar c1 = Calendar.getInstance(); c1.setTime(date); return c1; } /** * Calendar Convert To Date * @param cal * @return */ public static Date CalendarToDate(Calendar cal) { return cal.getTime(); } /** * 计算两个日期相差年月日 * * @param Date * c1 * @param Date * c2 * @return int[]{year, month, day} */ public int[] calculateDifferDay(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); c1.setTime(d1); Calendar c2 = Calendar.getInstance(); c1.setTime(d2); return calculateDifferDay(c1, c2); } /** * 计算两个日期相差年月日 * * @param Calendar * c1 * @param Calendar * c2 * @return int[]{year, month, day} */ public int[] calculateDifferDay(Calendar c1, Calendar c2) { int[] p1 = { c1.get(Calendar.YEAR), c1.get(Calendar.MONTH), c1.get(Calendar.DAY_OF_MONTH) }; int[] p2 = { c2.get(Calendar.YEAR), c2.get(Calendar.MONTH), c2.get(Calendar.DAY_OF_MONTH) }; System.out.println("p1[0]=" + p1[0] + " p1[1]=" + p1[1] + " p1[2]=" + p1[2]); System.out.println("p2[0]=" + p2[0] + " p2[1]=" + p2[1] + " p2[2]=" + p2[2]); int year = p2[0] - p1[0]; int month = (p2[0] * 12) + p2[1] - ((p1[0] * 12) + p1[1]); int day = (int) ((c2.getTimeInMillis() - c1.getTimeInMillis()) / (24 * 60 * 60 * 1000)); return new int[] { year, month, day }; } /** * 获取日期所在周的第一天 * * @param c * @return */ public static Calendar getLastDayOfWeek(Calendar c) { // SimpleDateFormat format2 = new SimpleDateFormat("y年M月d日 E H时m分s秒", Locale.CHINA); // System.out.println("当前时间:" + format2.format(c.getTime())); c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // System.out.println("周一时间:" + format2.format(c.getTime())); return c; } /** * 日期加减 * @param c * @param day * @return */ public static Calendar addOrDecreaseDay(Calendar c, int day) { c.add(Calendar.DAY_OF_MONTH, day); return c; } /** * 获取月最后一天 * @param year * @param month * @return */ public static int getLastDayOfMonth(int year, int month) { Calendar c = Calendar.getInstance(); c.set(year, month - 1, 1); return c.getActualMaximum(Calendar.DAY_OF_MONTH); } /** * 获取月最后一天 * @param cal * @return */ public static int getLastDayOfMonth(Calendar cal) { return cal.getActualMaximum(Calendar.DAY_OF_MONTH); } }
Pour plus d'articles liés à l'apprentissage des opérations sur les dates et les dates du calendrier en Java, veuillez prêter attention à le site PHP chinois !