`
eclipsekaka
  • 浏览: 11534 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

java 时间操作

阅读更多
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 日期转换工具
 */
public class DateUtil
{
    public static final String C_DATE_DIVISION = "-";

    public static final String C_TIME_PATTON_DEFAULT = "yyyy-MM-dd HH:mm:ss";
    public static final String C_DATE_PATTON_DEFAULT = "yyyy-MM-dd";
    public static final String C_DATA_PATTON_YYYYMMDD = "yyyyMMdd";
    public static final String C_TIME_PATTON_HHMMSS = "HH:mm:ss";
    
    public static final int  C_ONE_SECOND = 1000;
    public static final int  C_ONE_MINUTE = 60 * C_ONE_SECOND;
    public static final int  C_ONE_HOUR   = 60 * C_ONE_MINUTE;
    public static final long C_ONE_DAY    = 24 * C_ONE_HOUR;
    
    /**
     * Return the current date
     * 
     * @return - DATE<br>
     */
    public static Date getCurrentDate()
    {
     Calendar cal = Calendar.getInstance();
     Date currDate = cal.getTime();
     
     return currDate;
    }

    /**
     * Return the current date string
     * 
     * @return - 产生的日期字符串<br>
     */
    public static String getCurrentDateStr()
    {
     Calendar cal = Calendar.getInstance();
     Date currDate = cal.getTime();
     
     return format(currDate);
    }

    /**
  * Return the current date in the specified format
  * 
  * @param strFormat
  * @return
  */
 public static String getCurrentDateStr(String strFormat)
 {
     Calendar cal = Calendar.getInstance();
     Date currDate = cal.getTime();
     
     return format(currDate, strFormat);
 }

    /**
     * Parse a string and return a date value
     * 
     * @param dateValue
     * @return
     * @throws Exception
     */
    public static Date parseDate(String dateValue)
    {
     return parseDate(C_DATE_PATTON_DEFAULT, dateValue);
    }
    
    /**
     * Parse a strign and return a datetime value
     * 
     * @param dateValue
     * @return
     */
    public static Date parseDateTime(String dateValue)
    {
     return parseDate(C_TIME_PATTON_DEFAULT, dateValue);
    }
 
 /**
  * Parse a string and return the date value in the specified format
  * 
  * @param strFormat
  * @param dateValue
  * @return
  * @throws ParseException 
  * @throws Exception
  */
 public static Date parseDate(String strFormat, String dateValue)
 {
        if (dateValue == null)
            return null;
        
        if (strFormat == null)
            strFormat = C_TIME_PATTON_DEFAULT;
        
  SimpleDateFormat dateFormat = new SimpleDateFormat(strFormat);
  Date newDate = null;
  
  try
  {
   newDate = dateFormat.parse(dateValue);
  }
  catch (ParseException pe)
  {
   newDate = null;
  }

  return newDate;
 }

 
    /**
     * 将Timestamp类型的日期转换为系统参数定义的格式的字符串。
     * @param aTs_Datetime 需要转换的日期。
     * @return 转换后符合给定格式的日期字符串
     */
    public static String format(Date aTs_Datetime)
    {
      return format(aTs_Datetime, C_DATE_PATTON_DEFAULT);
    }
    
    /**
     * 将Timestamp类型的日期转换为系统参数定义的格式的字符串。
     * @param aTs_Datetime 需要转换的日期。
     * @return 转换后符合给定格式的日期字符串
     */
    public static String formatTime(Date aTs_Datetime)
    {
      return format(aTs_Datetime, C_TIME_PATTON_DEFAULT);
    }

    /**
     * 将Date类型的日期转换为系统参数定义的格式的字符串。
     * @param aTs_Datetime
     * @param as_Pattern
     * @return
     */
    public static String format(Date aTs_Datetime, String as_Pattern)
    {
      if (aTs_Datetime == null || as_Pattern == null)
        return null;

      SimpleDateFormat dateFromat = new SimpleDateFormat();
      dateFromat.applyPattern(as_Pattern);
      
      return dateFromat.format(aTs_Datetime);
    }
    
    /**
     * @param aTs_Datetime
     * @param as_Format
     * @return
     */
    public static String formatTime(Date aTs_Datetime, String as_Format)
    {
        if (aTs_Datetime == null || as_Format == null)
            return null;

          SimpleDateFormat dateFromat = new SimpleDateFormat();
          dateFromat.applyPattern(as_Format);
          
          return dateFromat.format(aTs_Datetime);
    }
    
    public static String getFormatTime(Date dateTime)
    {
        return formatTime(dateTime, C_TIME_PATTON_HHMMSS);
    }
    /**
     * @param aTs_Datetime
     * @param as_Pattern
     * @return
     */
    public static String format(Timestamp aTs_Datetime, String as_Pattern)
    {
      if (aTs_Datetime == null || as_Pattern == null)
        return null;

      SimpleDateFormat dateFromat = new SimpleDateFormat();
      dateFromat.applyPattern(as_Pattern);
      
      return dateFromat.format(aTs_Datetime);
    }
 /**
  * 取得指定日期N天后的日期
  * @param date
  * @param days
  * @return
  */
 public static Date addDays(Date date, int days)
 {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  
  cal.add(Calendar.DAY_OF_MONTH, days);
  
  return cal.getTime();
 }
 
 /**
  * 计算两个日期之间相差的天数
  * @param date1
  * @param date2
  * @return
  */
 public static int daysBetween(Date date1,Date date2)
 {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date1);
  long time1 = cal.getTimeInMillis();    
  cal.setTime(date2);
  long time2 = cal.getTimeInMillis();  
  long between_days=(time2-time1)/(1000*3600*24);
  
        return Integer.parseInt(String.valueOf(between_days));  
 }
 
 /**
  * 计算当前日期相对于"1977-12-01"的天数
  * @param date
  * @return
  */
 public static long getRelativeDays(Date date)
 {
  Date relativeDate = DateUtil.parseDate("yyyy-MM-dd","1977-12-01");
  
  return DateUtil.daysBetween(relativeDate,date);
 }
 
    public static Date getDateBeforTwelveMonth()
    {
        String date = "";
        Calendar cla = Calendar.getInstance();
        cla.setTime(getCurrentDate());
        int year = cla.get(Calendar.YEAR) - 1;
        int month = cla.get(Calendar.MONTH) + 1 ;
        if (month >9 )
        {
            date = String.valueOf(year) + C_DATE_DIVISION + String.valueOf(month)
                    + C_DATE_DIVISION + "01";
        }
        else 
        {
            date = String.valueOf(year) + C_DATE_DIVISION + "0" + String.valueOf(month)
                    + C_DATE_DIVISION + "01" ;
        }
        
        Date dateBefore = parseDate(date);
        return dateBefore;
    }
    
    /**
     * 传入时间字符串,加一天后返回Date
     * @param date 时间 格式 YYYY-MM-DD 
     * @return
     */
    public static Date addDate(String date)
    {
        if (date == null)
        {
            return null;
        }

        Date tempDate = parseDate(C_DATE_PATTON_DEFAULT, date);
        String year = format(tempDate, "yyyy");
        String month = format(tempDate, "MM");
        String day = format(tempDate, "dd");
        
        
        GregorianCalendar calendar = 
            new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month)-1, Integer.parseInt(day));
        
        calendar.add(GregorianCalendar.DATE, 1);
        return calendar.getTime();
    }

 public static void main(String[] args)
 {
//  Date date1 = DateUtil.addDays(DateUtil.getCurrentDate(),1);
//  Date date2 = DateUtil.addDays(DateUtil.getCurrentDate(),101);
//  
//  System.out.println(DateUtil.getRelativeDays(date1));
//  System.out.println(DateUtil.getRelativeDays(date2));
        
//     Timestamp date = new Timestamp(801);
//        
//        System.out.println(date);
//        String strDate = DateUtil.format(date, C_DATA_PATTON_YYYYMMDD);
//        
//        System.out.println(strDate);

     String date = "2006-07-31";
        System.out.println(date);
        Date date2 = addDate(date);
        System.out.println(date2);
        
 }
} 



0
1
分享到:
评论

相关推荐

    Java时间操作

    ### Java时间操作详解 在Java中,时间操作是软件开发中的常见需求,涉及到日期和时间的解析、格式化、计算以及存储。Java提供了多种类库来处理这些需求,包括`java.util.Date`、`java.util.Calendar`、`java.time`...

    java中的时间操作

    ### Java中的时间操作 在Java开发中,时间处理是一项非常重要的功能,特别是在涉及到日期和时间相关的应用程序中。本文将深入探讨Java中关于时间操作的基本概念和技术,并重点介绍四种常见的应用场景:获取当前时间...

    java时间操作工具类 DateUtils

    java中常用的时间操作;如日期,时间戳,日历,字符串相互转化;时间差等常用日期功能。

    java时间操作大集合

    在上述提供的代码段中,我们可以看到几个关于Java时间处理的关键知识点。这些方法主要用于获取当前时间,格式化时间字符串,以及将字符串转换为日期对象。 1. **日期对象创建与获取**:`java.util.Date` 类是Java中...

    java操作时间java操作时间

    JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间

    操作日期的java包

    为了解决这个问题,社区开发了Joda-Time库,它提供了更为强大且易用的日期时间操作功能。"操作日期的java包"即指的是Joda-Time这个第三方库。 Joda-Time是Java领域广泛使用的日期时间处理库,它的设计目标是替代...

    JAVA中的时间操作

    在Java编程语言中,时间操作是一项关键功能,用于处理日期、时间和时区相关的任务。Java提供了多种类库来处理时间,这些类库随着时间的推移不断进化,从早期的`java.util.Date`和`java.util.Calendar`到更现代的`...

    操作系统-java版本时间片

    在Java中,虽然操作系统级别的时间片调度是由底层操作系统实现的,但Java虚拟机(JVM)对此有所配合,通过线程调度来模拟时间片的效果。Java的`Thread`类是进行多线程操作的基础,线程的调度策略包括:抢占式调度、...

    java、sql、时间操作及json操作案例

    java时间操作以及转换,sql时间操作以及转换,json案例。js,css等

    xk-time Java时间工具包 v3.2.4.zip

    10. **性能优化**:针对Java时间操作进行了性能优化,以提高代码运行效率。 在压缩包中的`xk-time-3.2.4`文件很可能是库的JAR文件,可以直接在Java项目中引入作为依赖使用。而`说明.htm`文件则可能包含了详细的使用...

    java的时间操作.docx

    在上述代码中,`getNowDate()`和`getNowDateShort()`方法中虽然没有直接使用`Calendar`,但可以很容易地通过`Calendar.getInstance()`获取一个`Calendar`实例,然后进行进一步的日期时间操作。 Java 8引入了`java....

    java最全时间工具类,针对年月日周的操作

    java时间操作工具类,已封装好,包含获取某一时间的年,月,日,星期。以及对某一时间进行年,月,日,周的加减。还有获取某一时间年,月,日,周的起始和结束时间等等

    java-操作记录-对比操作前后不同

    1. **时间戳**:记录操作开始和结束的时间戳,以便了解操作的持续时间。 2. **资源消耗**:如果可能,记录操作过程中内存、CPU或其他资源的使用情况。 3. **状态变化**:记录操作前后的对象状态,比如数据库记录的...

    Java实现时间监听

    在Java编程中,时间监听是一项重要的任务,它允许程序对系统时间的变化进行反应或执行特定操作。这通常通过注册监听器来实现,监听器是一种回调机制,当特定事件发生时,它会被调用。在Java中,我们可以使用`java....

    Java8 日期时间操作

    详细介绍了Java8日期时间相关的api,列举了一些常用的方法,包含java.time、java.time.temporal、java.time.format包下的类和接口操作

    java操作时间工具类

    在提供的`TimeFormat.java`文件中,可能包含了对这些类的封装和扩展,以提供更加便捷的日期时间操作。例如,可能会有以下功能: 1. 格式化日期时间:提供一个静态方法,接收一个`Date`对象和格式模板字符串,返回...

    转 Java校正电脑时间(java 时间同步)

    这篇博客“转 Java校正电脑时间(java 时间同步)”主要探讨了如何在Java中实现这一功能。 首先,Java中的日期和时间API包括`java.util.Date`、`java.util.Calendar`,以及从Java 8开始引入的更现代的`java.time`包。...

    java日期时间操作函数代码

    总之,理解和熟练掌握Java的日期时间操作对于开发人员来说至关重要,无论是在处理用户输入、记录日志还是进行复杂的业务逻辑计算中,都可能需要用到这些功能。通过学习和实践,你可以编写出更加高效和易维护的代码。

    java获取时间大全

    - `java.util.Calendar`:这是`Date`的增强版,提供了更丰富的日期和时间操作功能,如增加、减少时间单位等。 - `java.time`包:Java 8引入的全新日期和时间API,包括`Year`, `Month`, `DayOfWeek`等枚举类型,...

    java判断时间大小

    ### Java 判断时间大小知识点详解 #### 一、前言 ...而利用`Calendar`则可以更加方便地进行日期时间的比较和操作。这些技巧对于处理涉及时间的应用程序非常有用,能够帮助开发者高效地解决实际问题。

Global site tag (gtag.js) - Google Analytics