软件编程
位置:首页>> 软件编程>> java编程>> 学习Java的Date、Calendar日期操作

学习Java的Date、Calendar日期操作

作者:白小衣  发布时间:2023-09-04 22:26:38 

标签:Java,Date,Calendar

本文介绍了Java开发过程中日期相关操作,分享的代码如下:


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);
 }

}

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com