Java日期操作常用方法

  1. /**  
  2.      * 取得指定月份的第一天  
  3.      *  
  4.      * @param strdate String  
  5.      * @return String  
  6.      */  
  7.     public String getMonthBegin(String strdate)   
  8.     {   
  9.         java.util.Date date = parseFormatDate(strdate);   
  10.         return formatDateByFormat(date,"yyyy-MM") + "-01";   
  11.     }   
  12.   
  13.     /**  
  14.      * 取得指定月份的最后一天  
  15.      *  
  16.      * @param strdate String  
  17.      * @return String  
  18.      */  
  19.     public String getMonthEnd(String strdate)   
  20.     {   
  21.         java.util.Date date = parseFormatDate(getMonthBegin(strdate));   
  22.         Calendar calendar = Calendar.getInstance();   
  23.         calendar.setTime(date);   
  24.         calendar.add(Calendar.MONTH,1);   
  25.         calendar.add(Calendar.DAY_OF_YEAR, -1);   
  26.         return formatDate(calendar.getTime());   
  27.     }   
  28.   
  29.     /**  
  30.      * 常用的格式化日期  
  31.      *  
  32.      * @param date Date  
  33.      * @return String  
  34.      */  
  35.     public String formatDate(java.util.Date date)   
  36.     {   
  37.         return formatDateByFormat(date,"yyyy-MM-dd");   
  38.     }   
  39.   
  40.     /**  
  41.      * 以指定的格式来格式化日期  
  42.      *  
  43.      * @param date Date  
  44.      * @param format String  
  45.      * @return String  
  46.      */  
  47.     public String formatDateByFormat(java.util.Date date,String format)   
  48.     {   
  49.         String result = "";   
  50.         if(date != null)   
  51.         {   
  52.             try  
  53.             {   
  54.                 SimpleDateFormat sdf = new SimpleDateFormat(format);   
  55.                 result = sdf.format(date);   
  56.             }   
  57.             catch(Exception ex)   
  58.             {   
  59.                 LOGGER.info("date:" + date);   
  60.                 ex.printStackTrace();   
  61.             }   
  62.         }   
  63.         return result;   
  64.     }   
  65.   
  66.   
  67.   
  68. /**  
  69.  * 日期操作  
  70.  *   
  71.  * @author xxx  
  72.  * @version 2.0 jdk1.4.0 tomcat5.1.0 * Updated Date:2005/03/10  
  73.  */  
  74. public class DateUtil {   
  75.  /**  
  76.   * 格式化日期  
  77.   *   
  78.   * @param dateStr  
  79.   *            字符型日期  
  80.   * @param format  
  81.   *            格式  
  82.   * @return 返回日期  
  83.   */  
  84.  public static java.util.Date parseDate(String dateStr, String format) {   
  85.   java.util.Date date = null;   
  86.   try {   
  87.    java.text.DateFormat df = new java.text.SimpleDateFormat(format);   
  88.    String dt=Normal.parse(dateStr).replaceAll(   
  89.      "-""/");   
  90.    if((!dt.equals(""))&&(dt.length()
  91.     dt+=format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");   
  92.    }   
  93.    date = (java.util.Date) df.parse(dt);   
  94.   } catch (Exception e) {   
  95.   }   
  96.   return date;   
  97.  }   
  98.   
  99.  public static java.util.Date parseDate(String dateStr) {   
  100.   return parseDate(dateStr, "yyyy/MM/dd");   
  101.  }   
  102.   
  103.  public static java.util.Date parseDate(java.sql.Date date) {   
  104.   return date;   
  105.  }   
  106.     
  107.  public static java.sql.Date parseSqlDate(java.util.Date date) {   
  108.   if (date != null)   
  109.    return new java.sql.Date(date.getTime());   
  110.   else  
  111.    return null;   
  112.  }   
  113.   
  114.  public static java.sql.Date parseSqlDate(String dateStr, String format) {   
  115.   java.util.Date date = parseDate(dateStr, format);   
  116.   return parseSqlDate(date);   
  117.  }   
  118.   
  119.  public static java.sql.Date parseSqlDate(String dateStr) {   
  120.   return parseSqlDate(dateStr, "yyyy/MM/dd");   
  121.  }   
  122.   
  123.     
  124.  public static java.sql.Timestamp parseTimestamp(String dateStr,   
  125.    String format) {   
  126.   java.util.Date date = parseDate(dateStr, format);   
  127.   if (date != null) {   
  128.    long t = date.getTime();   
  129.    return new java.sql.Timestamp(t);   
  130.   } else  
  131.    return null;   
  132.  }   
  133.   
  134.  public static java.sql.Timestamp parseTimestamp(String dateStr) {   
  135.   return parseTimestamp(dateStr, "yyyy/MM/dd HH:mm:ss");   
  136.  }   
  137.   
  138.  /**  
  139.   * 格式化输出日期  
  140.   *   
  141.   * @param date  
  142.   *            日期  
  143.   * @param format  
  144.   *            格式  
  145.   * @return 返回字符型日期  
  146.   */  
  147.  public static String format(java.util.Date date, String format) {   
  148.   String result = "";   
  149.   try {   
  150.    if (date != null) {   
  151.     java.text.DateFormat df = new java.text.SimpleDateFormat(format);   
  152.     result = df.format(date);   
  153.    }   
  154.   } catch (Exception e) {   
  155.   }   
  156.   return result;   
  157.  }   
  158.   
  159.  public static String format(java.util.Date date) {   
  160.   return format(date, "yyyy/MM/dd");   
  161.  }   
  162.   
  163.  /**  
  164.   * 返回年份  
  165.   *   
  166.   * @param date  
  167.   *            日期  
  168.   * @return 返回年份  
  169.   */  
  170.  public static int getYear(java.util.Date date) {   
  171.   java.util.Calendar c = java.util.Calendar.getInstance();   
  172.   c.setTime(date);   
  173.   return c.get(java.util.Calendar.YEAR);   
  174.  }   
  175.   
  176.  /**  
  177.   * 返回月份  
  178.   *   
  179.   * @param date  
  180.   *            日期  
  181.   * @return 返回月份  
  182.   */  
  183.  public static int getMonth(java.util.Date date) {   
  184.   java.util.Calendar c = java.util.Calendar.getInstance();   
  185.   c.setTime(date);   
  186.   return c.get(java.util.Calendar.MONTH) + 1;   
  187.  }   
  188.   
  189.  /**  
  190.   * 返回日份  
  191.   *   
  192.   * @param date  
  193.   *            日期  
  194.   * @return 返回日份  
  195.   */  
  196.  public static int getDay(java.util.Date date) {   
  197.   java.util.Calendar c = java.util.Calendar.getInstance();   
  198.   c.setTime(date);   
  199.   return c.get(java.util.Calendar.DAY_OF_MONTH);   
  200.  }   
  201.   
  202.  /**  
  203.   * 返回小时  
  204.   *   
  205.   * @param date  
  206.   *            日期  
  207.   * @return 返回小时  
  208.   */  
  209.  public static int getHour(java.util.Date date) {   
  210.   java.util.Calendar c = java.util.Calendar.getInstance();   
  211.   c.setTime(date);   
  212.   return c.get(java.util.Calendar.HOUR_OF_DAY);   
  213.  }   
  214.   
  215.  /**  
  216.   * 返回分钟  
  217.   *   
  218.   * @param date  
  219.   *            日期  
  220.   * @return 返回分钟  
  221.   */  
  222.  public static int getMinute(java.util.Date date) {   
  223.   java.util.Calendar c = java.util.Calendar.getInstance();   
  224.   c.setTime(date);   
  225.   return c.get(java.util.Calendar.MINUTE);   
  226.  }   
  227.   
  228.  /**  
  229.   * 返回秒钟  
  230.   *   
  231.   * @param date  
  232.   *            日期  
  233.   * @return 返回秒钟  
  234.   */  
  235.  public static int getSecond(java.util.Date date) {   
  236.   java.util.Calendar c = java.util.Calendar.getInstance();   
  237.   c.setTime(date);   
  238.   return c.get(java.util.Calendar.SECOND);   
  239.  }   
  240.   
  241.  /**  
  242.   * 返回毫秒  
  243.   *   
  244.   * @param date  
  245.   *            日期  
  246.   * @return 返回毫秒  
  247.   */  
  248.  public static long getMillis(java.util.Date date) {   
  249.   java.util.Calendar c = java.util.Calendar.getInstance();   
  250.   c.setTime(date);   
  251.   return c.getTimeInMillis();   
  252.  }   
  253.   
  254.  /**  
  255.   * 返回字符型日期  
  256.   *   
  257.   * @param date  
  258.   *            日期  
  259.   * @return 返回字符型日期  
  260.   */  
  261.  public static String getDate(java.util.Date date) {   
  262.   return format(date, "yyyy/MM/dd");   
  263.  }   
  264.   
  265.  /**  
  266.   * 返回字符型时间  
  267.   *   
  268.   * @param date  
  269.   *            日期  
  270.   * @return 返回字符型时间  
  271.   */  
  272.  public static String getTime(java.util.Date date) {   
  273.   return format(date, "HH:mm:ss");   
  274.  }   
  275.   
  276.  /**  
  277.   * 返回字符型日期时间  
  278.   *   
  279.   * @param date  
  280.   *            日期  
  281.   * @return 返回字符型日期时间  
  282.   */  
  283.  public static String getDateTime(java.util.Date date) {   
  284.   return format(date, "yyyy/MM/dd HH:mm:ss");   
  285.  }   
  286.   
  287.  /**  
  288.   * 日期相加  
  289.   *   
  290.   * @param date  
  291.   *            日期  
  292.   * @param day  
  293.   *            天数  
  294.   * @return 返回相加后的日期  
  295.   */  
  296.  public static java.util.Date addDate(java.util.Date date, int day) {   
  297.   java.util.Calendar c = java.util.Calendar.getInstance();   
  298.   c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);   
  299.   return c.getTime();   
  300.  }   
  301.   
  302.  /**  
  303.   * 日期相减  
  304.   *   
  305.   * @param date  
  306.   *            日期  
  307.   * @param date1  
  308.   *            日期  
  309.   * @return 返回相减后的日期  
  310.   */  
  311.  public static int diffDate(java.util.Date date, java.util.Date date1) {   
  312.   return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));   
  313.  }    
  314. }   
  315.   
  316.   
  317.   
  318. Calendar now = Calendar.getInstance();   
  319. int year = now.get(Calendar.YEAR);   
  320. int date = now.get(Calendar.DAY_OF_MONTH);   
  321. int month = now.get(Calendar.MONTH) + 1;   
  322. int hour = now.get(Calendar.HOUR);   
  323. int min = now.get(Calendar.MINUTE);   
  324. int sec = now.get(Calendar.SECOND);   
  325.   
  326.   
  327.   
  328.   
  329. import java.sql.Timestamp;   
  330. import java.text.SimpleDateFormat;   
  331. import java.util.*;   
  332. /**   
  333.  * 
  334.  *   
  335. public class ManageWeek {   
  336.  //判断两个日期是否在同一周   
  337.  boolean isSameWeekDates(Date date1, Date date2) {   
  338.   Calendar cal1 = Calendar.getInstance();   
  339.   Calendar cal2 = Calendar.getInstance();   
  340.   cal1.setTime(date1);   
  341.   cal2.setTime(date2);   
  342.   int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);   
  343.   if (0 == subYear) {   
  344.     if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))   
  345.    return true;   
  346.   }   
  347.   else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {   
  348.     // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周   
  349.     if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))   
  350.    return true;   
  351.   }   
  352.   else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {   
  353.     if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))   
  354.    return true;   
  355.   }   
  356.   return false;   
  357.  }   
  358.     
  359.     
  360.  //产生周序列   
  361.  public static String  getSeqWeek(){   
  362.   Calendar c = Calendar.getInstance(Locale.CHINA);   
  363.   String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));   
  364.   if(week.length()==1)week = "0" + week;   
  365.   String year = Integer.toString(c.get(Calendar.YEAR));     
  366.   return year+week;   
  367.      
  368.  }   
  369.      
  370.   //获得周一的日期   
  371.   public static String getMonday(Date date){   
  372.    Calendar c = Calendar.getInstance();   
  373.    c.setTime(date);   
  374.    c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);   
  375.    return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());   
  376.   }   
  377.      
  378.      
  379.   //获得周五的日期   
  380.   public static String getFriday(Date date){   
  381.    Calendar c = Calendar.getInstance();   
  382.    c.setTime(date);   
  383.    c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);      
  384.    return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());   
  385.       
  386.       
  387.   }   
  388.      
  389.   public static void main(String[] args){   
  390.   
  391.   }   
  392.   
  393. }   
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值