欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

学习Java的Date、Calendar日期操作

时间:2021-01-11 11:02:35|栏目:JAVA代码|点击:

本文介绍了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);
  }
   
}

上一篇:使用IDEA将Java/Kotliin工程导出Jar包的正确姿势

栏    目:JAVA代码

下一篇:浅谈web服务器项目中request请求和response的相关响应处理

本文标题:学习Java的Date、Calendar日期操作

本文地址:http://www.codeinn.net/misctech/43780.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有