最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

學(xué)習(xí)Java的Date、Calendar日期操作

 更新時間:2015年07月31日 10:02:59   作者:白小衣  
Java開發(fā)過程中避免不了日期相關(guān)操作,這篇文章總結(jié)了一些Date、Calendar的常用方法,需要的朋友可以參考下

本文介紹了Java開發(fā)過程中日期相關(guān)操作,分享的代碼如下:

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 轉(zhuǎn) 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 轉(zhuǎn) 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();
  }
 
  /**
   * 計(jì)算兩個日期相差年月日
   * 
   * @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);
  }
 
  /**
   * 計(jì)算兩個日期相差年月日
   * 
   * @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("當(dāng)前時間:" + 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);
  }
   
}

相關(guān)文章

  • Java中兩種拋出異常的方式示例詳解

    Java中兩種拋出異常的方式示例詳解

    在Java中有兩種拋出異常的方式,一種是throw,直接拋出異常,另一種是throws,間接拋出異常,本文給大家詳細(xì)說明java中兩種拋出異常的方式,感興趣的朋友一起看看吧
    2023-08-08
  • 集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    本文主要介紹了Java的集合框架Java?Collection?Framework,接口interface以及背后的數(shù)據(jù)結(jié)構(gòu),感興趣的同學(xué)可以閱讀參考
    2023-03-03
  • java的接口解耦方式

    java的接口解耦方式

    這篇文章主要介紹了java的接口解耦方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot Actuator未授權(quán)訪問漏洞解決方案

    SpringBoot Actuator未授權(quán)訪問漏洞解決方案

    工作的時候遇到過提示Spring Boot后端存在Actuator未授權(quán)訪問漏洞,網(wǎng)上有很多詳細(xì)的解釋文章,在這里做一個簡單的總結(jié)、介紹和分享,需要的朋友可以參考下
    2023-09-09
  • Java多線程——基礎(chǔ)概念

    Java多線程——基礎(chǔ)概念

    這篇文章主要介紹了java多線程編程實(shí)例,分享了幾則多線程的實(shí)例代碼,具有一定參考價值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下,希望可以幫到你
    2021-07-07
  • 解決FontConfiguration.getVersion報(bào)空指針異常的問題

    解決FontConfiguration.getVersion報(bào)空指針異常的問題

    這篇文章主要介紹了解決FontConfiguration.getVersion報(bào)空指針異常的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 淺談MyBatis-plus入門使用

    淺談MyBatis-plus入門使用

    這幾天本人了解到了MyBatis-plus,一個 Mybatis 增強(qiáng)工具包.經(jīng)過一番研究,發(fā)現(xiàn)這玩意真的好用,不用寫任何 xml ,內(nèi)置通用的 Mapper,而且完全是面向?qū)ο缶幊?文檔給的示例代碼,跟之前用過的 sequelize (Node.js 的 ORM)非常像,因此本人也嘗試了一把, 需要的朋友可以參考下
    2021-05-05
  • Java判斷字符串是否是有效的括號(實(shí)例詳解)

    Java判斷字符串是否是有效的括號(實(shí)例詳解)

    給定一個只包括 '(',')','{','}','[',']' 的字符串 s ,判斷字符串是否有效,有效字符串需要滿足:左括號必須用相同類型的右括號閉合,這篇文章主要介紹了Java判斷字符串是否是有效的括號,需要的朋友可以參考下
    2023-10-10
  • Java多線程異步調(diào)用性能調(diào)優(yōu)方法詳解

    Java多線程異步調(diào)用性能調(diào)優(yōu)方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java多線程異步調(diào)用性能調(diào)優(yōu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • java多線程抓取鈴聲多多官網(wǎng)的鈴聲數(shù)據(jù)

    java多線程抓取鈴聲多多官網(wǎng)的鈴聲數(shù)據(jù)

    很容易就能發(fā)現(xiàn)通過改變 listId和page就能從服務(wù)器獲取鈴聲的json數(shù)據(jù), 通過解析json數(shù)據(jù), 可以看到都帶有{"hasmore":1,"curpage":1}這樣子的指示,通過判斷hasmore的值,決定是否進(jìn)行下一頁的抓取。 但是通過上面這個鏈接返回的json中不帶有鈴聲的下載地址
    2016-04-04

最新評論

岳阳县| 永德县| 河南省| 同仁县| 武宁县| 富民县| 涟源市| 嘉祥县| 孝感市| 华容县| 海盐县| 阜阳市| 乌拉特后旗| 乌鲁木齐市| 汶川县| 秭归县| 福清市| 婺源县| 额济纳旗| 敖汉旗| 大理市| 大足县| 富阳市| 绥棱县| 黄陵县| 常宁市| 环江| 沁阳市| 克山县| 道真| 宁都县| 阳原县| 嵊泗县| 石河子市| 罗江县| 甘南县| 乳山市| 襄樊市| 固原市| 中西区| 嘉善县|