zoukankan      html  css  js  c++  java
  • java -日期

    package com.qinghuainvest.tsmarket.util;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    
    public class UtilsDate {
        public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";
        public static final String yyyy_MM_dd = "yyyy-MM-dd";
        public static final String yyyyMMdd = "yyyyMMdd";
        public static final String yyyyMM = "yyyyMM";
        
        /**
         * 将字符串日期格式转化成另一种日期格式
         * @param strDate:字符日期
         * @param dateFormat:字符日期的格式
         * @param pformat:需要格式化后的日期格式
         * @return
         */
        public static String getStringToString(String strDate,String dateFormat,String pformat){
            return getDateToString(getStringToDate(dateFormat, strDate), pformat);
            
        }
    
        /**
         * 系统日期转化成字符串
         * @param format
         * @return
         */
        public static String getSystemDateToString(String format) {
            return getDateToString(new Date(), format);
        }
        /**
         * 日期转化成str字符串
         * @param date
         * @param format
         * @return
         */
        public static String getDateToString(Date date,String format) {
            if( date == null )return null;
            SimpleDateFormat siFormat = new SimpleDateFormat(format);
            try {
                return siFormat.format(date);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        
        /**
         * 系统日期的前n日
         * @param dateTime:待处理的日期
         * @param n:加减天数
         * @return
         */
        public static String getSystemDateToYesterday(int n,String format){
            try {
                return getDateToString(new Date(getSystemDateToDate(format).getTime()- n * 24 * 60 * 60 * 1000), format);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
         }
        
        
        /**
         * 系统年份
         * @param format
         * @return
         */
        public static int getYear(String format){
            return getYear(format, new Date());
            
        }
        /**
         * 读取日期中的年份
         * @param format
         * @param date
         * @return
         */
        public static int getYear(String format,Date date){
            try {
                return Integer.parseInt(new SimpleDateFormat(format).format(date));
            } catch (Exception e) {
                e.printStackTrace();
            }
            return 0;
        }
        
        /**
         * 读取系统日期
         * @param format
         * @return
         */
        public static Date getSystemDateToDate(String format) {
            return getStringToDate(format, new SimpleDateFormat(format).format(new Date()));
        }
        
        /**
         * 字符串日期转化成日期对象Date
         * @param format
         * @param date
         * @param locale
         * @return
         */
        public static Date getStringToDate(String format,String date,Locale locale) {
            try {
                return new SimpleDateFormat(format,locale).parse(date);
            } catch (ParseException ex) {
                ex.printStackTrace();
            }
            return null;
        }
        
    
        /**
         * 字符串日期转化成日期对象Date(本地日期对象)
         * @param format
         * @param date
         * @return
         */
        public static Date getStringToDate(String format,String date) {
            return getStringToDate(format, date, Locale.CHINA);
        }
        
        /**
         * 比较两个日期是否相等
         * @param date1
         * @param date2
         * @return
         */
        public static boolean isEquals(Date date1,Date date2){
            return isEqualsYYYYMMDD(getDateToString(date1,yyyy_MM_dd_HH_mm_ss), getDateToString(date2,yyyy_MM_dd_HH_mm_ss));
        }
    
        /**
         * 当前日期是否与系统日期相等
         * @param date
         * @param systemformat
         * @return
         */
        public static boolean isEqualsYYYYMMDDToday(String date,String systemformat){
            return isEqualsYYYYMMDD(date,getSystemDateToString(systemformat));
        }
        
        
        /**
         * 当前日期是否与系统日期相等
         * @param date
         * @return
         */
        public static boolean isEqualsYYYYMMDDToday(Date date){
            return isEqualsYYYYMMDD(date,new Date());
        }
        
        /**
         * 比较两个日期是否相等
         * @param date1
         * @param date2
         * @return
         */
        public static boolean isEqualsYYYYMMDD(Date date1,Date date2){
            return isEqualsYYYYMMDD(getDateToString(date1,yyyy_MM_dd), getDateToString(date2,yyyy_MM_dd));
        }
    
        /**
         * 比较两个日期字符串是否相等,需要确定两个日期的字符格式
         * @param str1
         * @param str1Format
         * @param str2
         * @param str2Format
         * @return
         */
        public static boolean isEqualsYYYYMMDD(String str1,String str1Format,String str2,String str2Format){
            return isEqualsYYYYMMDD(getStringToString(str1, str1Format, yyyy_MM_dd), getStringToString(str2, str2Format, yyyy_MM_dd));
        }
        
        
        /**
         * 比较两个日期字符串是否相等,需要确定两个日期的字符格式
         * @param str1
         * @param str2
         * @return
         */
        public static boolean isEqualsYYYYMMDD(String str1,String str2){
            if( str1== null ){
                if( str2 == null )return true;
                return false;
            }
            return str1.equals(str2);
        }
        
    
        
        /**
         * 比较日期大小
         * @param date1
         * @param date2
         * @return true:date1大于/等于data2;false:date1小于data2
         */
        public static boolean isMoreSize(Date date1,Date date2) {
            if( date1 == null ) return false;
            if(!date1.before(date2))
                return true;
            return false;
        }
        
        public static void main(String[] args) {
            
            Date date1 = UtilsDate.getStringToDate(UtilsDate.yyyy_MM_dd,"2015-01-29");
            Date date2 = UtilsDate.getSystemDateToDate(UtilsDate.yyyy_MM_dd);
            if( !UtilsDate.isMoreSize(date1, date2)) {//今天之前的,则移除
                System.out.println("data1小于且不等于date2移除");
            }
            
            
            System.out.println("比较日期大小:"+getStringToDate(yyyy_MM_dd,"2015-04-29"));
            System.out.println("当前系统日期:"+getSystemDateToString(yyyy_MM_dd_HH_mm_ss));
            
            System.out.println("今年"+getYear("yyyy"));
            
            System.out.println("系统日期的前一天:"+getSystemDateToYesterday(1, yyyy_MM_dd));
        }
        
        
    }

    获取上个月:

     Calendar c = Calendar.getInstance();
      c.add(Calendar.MONTH, -1);
      SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM");
      String time = format.format(c.getTime());
    //得到一个月最后一天日期(31/30/29/28)
      int MaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
      //按你的要求设置时间
      c.set( c.get(Calendar.YEAR), c.get(Calendar.MONTH), MaxDay, 23, 59, 59);
      //按格式输出
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
      String gtime = sdf.format(c.getTime()); //上月最后一天
    
     
    
     
    
    /**
      * 获取本日日期
      * @return
      */
     public static String getToDay(){
      Calendar c = Calendar.getInstance();
      String time = getTime(c);
      System.out.println(time);
      return time;
     }
    
    
     /**
      * 获取本周一日期
      * @return
      */
     public static String getWeekA(){
      Calendar cal =Calendar.getInstance();
      cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    //  System.out.println(cal.getTime());
      String time = getTime(cal)+" 00:00:00";
      System.out.println(time);
      return time;
     }
    
     
    
     /**
      * 获取本周日日期
      * @return
      */
     public static String getWeekB(){
      Calendar cal =Calendar.getInstance();
    //  System.out.println(cal.getTime());
      //这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天
      cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    //  System.out.println(cal.getTime());
      
      //增加一个星期,才是我们中国人理解的本周日的日期
      cal.add(Calendar.WEEK_OF_YEAR, 1);
    //  System.out.println(cal.getTime()); //本周日
      String time = getTime(cal)+" 23:59:59";
      System.out.println(time);
      return time;
     }
    
    
     /**
      * 获取本月日期
      * @return
      */
     public static String getMonth(){
      Calendar c = Calendar.getInstance();
      SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM");
      String time = format.format(c.getTime());
      System.out.println(time);
      return time;
     }
  • 相关阅读:
    VIJOS-P1446 最短路上的统计
    洛谷 CF997A Convert to Ones
    USACO Your Ride Is Here
    NOIP 2006 明明的随机数
    NOIP 2008 传球游戏
    数据结构—链表详解
    洛谷 P1160 队列安排
    洛谷 P1167 刷题
    JDOJ 2982: 最大连续子段和问题
    洛谷 P1123 取数游戏
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/4766257.html
Copyright © 2011-2022 走看看