`

获取java 处理时间的实现(具体代码)

阅读更多
资料整合:

(一).今天的日期,两天前的日期,三天后的日期
Date d=new Date();   
 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");   
 System.out.println("今天的日期:"+df.format(d));   
 System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - (long)2 * 24 * 60 * 60 * 1000)));  
   System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + (long)3 * 24 * 60 * 60 * 1000)));


(二).JAVA处理日期时间常用方法:

1.java.util.Calendar
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

例:

Calendar cal = Calendar.getInstance();//使用默认时区和语言环境获得一个日历。    

cal.add(Calendar.DAY_OF_MONTH, -1);//取当前日期的前一天.    

cal.add(Calendar.DAY_OF_MONTH, +1);//取当前日期的后一天. 
  
//通过格式化输出日期    

java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");    

System.out.println("Today is:"+format.format(Calendar.getInstance().getTime()));    

System.out.println("yesterday is:"+format.format(cal.getTime()));   

Calendar cal = Calendar.getInstance();//使用默认时区和语言环境获得一个日历。 
cal.add(Calendar.DAY_OF_MONTH, -1);//取当前日期的前一天. 
cal.add(Calendar.DAY_OF_MONTH, +1);//取当前日期的后一天. 

//通过格式化输出日期 
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd"); System.out.println("Today is:"+format.format(Calendar.getInstance().getTime())); System.out.println("yesterday is:"+format.format(cal.getTime()));




得到2007-12-25日期:

Calendar calendar = new GregorianCalendar(2007, 11, 25,0,0,0);    
Date date = calendar.getTime();    

System.out.println("2007 Christmas is:"+format.format(date));   

Calendar calendar = new GregorianCalendar(2007, 11, 25,0,0,0); Date date = calendar.getTime(); System.out.println("2007 Christmas is:"+format.format(date));



java月份是从0-11,月份设置时要减1.

GregorianCalendar构造方法参数依次为:年,月-1,日,时,分,秒.

取日期的部分:


int year =calendar.get(Calendar.YEAR);    
int month=calendar.get(Calendar.MONTH)+1;

int day =calendar.get(Calendar.DAY_OF_MONTH);    

int hour =calendar.get(Calendar.HOUR_OF_DAY);    

int minute =calendar.get(Calendar.MINUTE);    

int seconds =calendar.get(Calendar.SECOND);   

int year =calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH)+1; int day =calendar.get(Calendar.DAY_OF_MONTH); int hour =calendar.get(Calendar.HOUR_OF_DAY); int minute =calendar.get(Calendar.MINUTE); int seconds =calendar.get(Calendar.SECOND);




取月份要加1.

判断当前月份的最大天数:


Calendar cal = Calendar.getInstance();    

int day=cal.getActualMaximum(Calendar.DAY_OF_MONTH);    

System.out.println(day);   

Calendar cal = Calendar.getInstance(); int day=cal.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(day);



2.java.util.Date


java.util.Date today=new java.util.Date();    

System.out.println("Today is "+formats.format(today));   

java.util.Date today=new java.util.Date(); System.out.println("Today is "+formats.format(today));



取当月的第一天:


java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01");    

java.util.Date firstDay=new java.util.Date();    

System.out.println("the month first day is "+formats.format(firstDay));   

java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01"); java.util.Date firstDay=new java.util.Date(); System.out.println("the month first day is "+formats.format(firstDay));



取当月的最后一天:

Calendar cal = Calendar.getInstance();    

int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH);    

java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay);    

System.out.println(formatter3.format(cal.getTime()));   

 Calendar cal = Calendar.getInstance(); int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH); java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay); System.out.println(formatter3.format(cal.getTime()));



求两个日期之间相隔的天数:

java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");    

java.util.Date beginDate= format.parse("2007-12-24");    

java.util.Date endDate= format.parse("2007-12-25");    

long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);    

System.out.println("相隔的天数="+day);   

java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date beginDate= format.parse("2007-12-24"); java.util.Date endDate= format.parse("2007-12-25"); long day=(date.getTime()-mydate.getTime())/(24*60*60*1000); System.out.println("相隔的天数="+day);




一年前的日期:

java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");    

java.util.Date todayDate=new java.util.Date();    

long beforeTime=(todayDate.getTime()/1000)-60*60*24*365;    

todayDate.setTime(beforeTime*1000);    

String beforeDate=formatter.format(todayDate);    

System.out.println(beforeDate);   

java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date todayDate=new java.util.Date(); long beforeTime=(todayDate.getTime()/1000)-60*60*24*365; todayDate.setTime(beforeTime*1000); String beforeDate=formatter.format(todayDate); System.out.println(beforeDate);



一年后的日期:
java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");    

java.util.Date todayDate=new java.util.Date();    

long afterTime=(todayDate.getTime()/1000)+60*60*24*365;    

todayDate.setTime(afterTime*1000);    

String afterDate=formatter.format(todayDate);    

System.out.println(afterDate);   

java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date todayDate=new java.util.Date(); long afterTime=(todayDate.getTime()/1000)+60*60*24*365; todayDate.setTime(afterTime*1000); String afterDate=formatter.format(todayDate); System.out.println(afterDate);




求10小时后的时间

java.util.Calendar Cal=java.util.Calendar.getInstance();    

Cal.setTime(dateOper);    

Cal.add(java.util.Calendar.HOUR_OF_DAY,10);    

System.out.println("date:"+forma.format(Cal.getTime()));   

java.util.Calendar Cal=java.util.Calendar.getInstance(); Cal.setTime(dateOper); Cal.add(java.util.Calendar.HOUR_OF_DAY,10); System.out.println("date:"+forma.format(Cal.getTime()));



求10小时前的时间
java.util.Calendar Cal=java.util.Calendar.getInstance();    

Cal.setTime(dateOper);    

Cal.add(java.util.Calendar.HOUR_OF_DAY,-10);    

System.out.println("date:"+forma.format(Cal.getTime()));   

java.util.Calendar Cal=java.util.Calendar.getInstance(); Cal.setTime(dateOper); Cal.add(java.util.Calendar.HOUR_OF_DAY,-10); System.out.println("date:"+forma.format(Cal.getTime()));


取得指定日期是星期几:
a、使用Calendar类
int weekDay = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
   public static String getWeek(Date date){  
        String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
        Calendar cal = Calendar.getInstance();  
        cal.setTime(date);  
        int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;  
        if(week_index<0){  
            week_index = 0;  
        }   
        return weeks[week_index];  
   }  

b、使用SimpleDateFormat类
01.//根据日期取得星期几  
   public static String getWeek(Date date){   
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE");  
        String week = sdf.format(date);  
        return week;  
    }  


取得日期是某年的第几周
01.//取得日期是某年的第几周  
    public static int getWeekOfYear(Date date){  
        Calendar cal = Calendar.getInstance();  
        cal.setTime(date);  
        int week_of_year = cal.get(Calendar.WEEK_OF_YEAR);  
        return week_of_year;  
    }

3.java.sql.Date
继承自java.util.Date,是操作数据库用的日期类型


java.sql.Date sqlDate = new java.sql.Date(java.sql.Date.valueOf("2007-12-25").getTime());

java.sql.Date sqlDate = new java.sql.Date(java.sql.Date.valueOf("2007-12-25").getTime());



日期比较:简单的比较可以以字符串的形式直接比较,也可使用
java.sql.Date.valueOf("2007-03-08").compareTo(java.sql.Date.valueOf("2007-03-18"))方式来比较日期的大小.也可使用java.util.Date.after(java.util.Date)来比较.

相差时间:
long difference=c2.getTimeInMillis()-c1.getTimeInMillis();
相差天数:long day=difference/(3600*24*1000)
相差小时:long hour=difference/(3600*1000)
相差分钟:long minute=difference/(60*1000)
相差秒: long second=difference/1000

补充:


DateFormat df=new SimpleDateFormat("yyyy-MM-dd EE hh:mm:ss");    

System.out.println(df.format(new Date()));    

Date date = new Date();    

DateFormat shortDate=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);    

DateFormat mediumDate =DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);    

DateFormat longDate =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);    

DateFormat fullDate =DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);    

  

system.out.println(shortDate.format(date));    

System.out.println(mediumDate.format(date));    

System.out.println(longDate.format(date));    

System.out.println(fullDate.format(date));    
 

08-4-15 下午3:24   

2008-4-15 15:24:31   

2008年4月15日 下午03时24分31秒   

2008年4月15日 星期二 下午03时24分31秒CST   



Calendar c = Calendar.getInstance();

c.add(Calendar.MONTH, 1); // 目前時間加1個月   

System.out.println(df.format(c.getTime()));   

c.add(Calendar.HOUR, 3); // 目前時間加3小時   

System.out.println(df.format(c.getTime()));   

c.add(Calendar.YEAR, -2); // 目前時間減2年   

System.out.println(df.format(c.getTime()));

c.add(Calendar.DAY_OF_WEEK, 7); // 目前的時間加7天   

System.out.println(df.format(c.getTime()));  


资料来自互联网,自己整合;
分享到:
评论

相关推荐

    JAVA编写计算器代码

    你可以通过阅读这些文件来学习具体的实现细节,包括类的定义、方法的实现以及如何处理用户输入和输出。通过分析和理解这些代码,你将能进一步提升自己的Java编程技能。 总的来说,编写一个Java计算器是学习和掌握...

    java中获取系统时间

    在Java编程中,获取系统时间是一项基本而重要的功能,常用于日期处理、定时任务、日志记录等场景。本文将详细介绍三种常用的获取系统时间的方法,并通过一个示例程序来具体演示这些方法的实际应用。 #### 方法一:...

    java获取某地天气

    具体到这个“完整版的测试代码”,它应该包含了上述所有步骤的实现,包括构建HTTP请求,解析返回的JSON,处理异常,以及可能的测试用例。文件名为“Weather”的可能是一个Java类,包含了获取天气信息的逻辑和测试...

    java获取某一时间

    根据给定文件的信息,本文将深入探讨 Java 中与时间处理相关的知识,重点在于获取特定日期的方法及其实现细节。文章将覆盖如下知识点: 1. **Java 时间类的基础介绍** 2. **日期格式化与解析** 3. **获取当前日期、...

    java 获取系统时间错误,少了8小时

    在Java编程中,获取系统时间的操作通常是通过`java.util.Date`类或`java.time`包下的类来实现的。然而,标题"java 获取系统时间错误,少了8小时"表明开发者在尝试获取系统时间时遇到了一个时区问题。这通常与Java中...

    java处理各种文件代码

    它提供了一些静态方法来创建、删除、重命名文件和目录,以及获取文件属性(如大小、最后修改时间等)。 4. **FileInputStream和FileOutputStream的使用**:使用这两个类可以读写二进制文件,如图片、音频或视频文件...

    java 获取服务器时间

    在Java编程中,获取服务器时间通常涉及到网络通信和图形用户界面(GUI)的开发。这里我们主要关注两个关键部分:使用UDP协议进行C/S模式的通信以及构建GUI来展示服务器返回的时间。 首先,UDP(User Datagram ...

    java日期时间操作函数代码

    如果这个文件包含了代码示例,你可以打开查看具体实现,进一步学习和理解Java日期时间操作的细节。 总之,理解和熟练掌握Java的日期时间操作对于开发人员来说至关重要,无论是在处理用户输入、记录日志还是进行复杂...

    简单订单系统实现java源代码

    总的来说,"简单订单系统实现java源代码"项目是一个综合性的学习资源,涵盖了Java编程、面向对象设计、数据库操作、MVC框架应用以及异常处理等多个方面的知识。通过深入研究这个系统,不仅可以提升Java编程能力,还...

    java 获取年月日的代码

    在给定的代码片段中,我们能够看到一个简单的实现方式来获取当前的年、月、日以及时间等信息。下面我们将对这段代码进行详细解析,并深入探讨其背后涉及的关键知识点。 #### 1. 获取系统当前时间 ```java long ...

    JAVA获取系统时间.txt

    ### JAVA获取系统时间知识点详解 在Java编程语言中,获取并格式化系统当前时间是一项非常基础且常用的操作。本文档将详细介绍如何利用Java内置类来实现这一功能,并深入探讨其中涉及的重要概念和技术细节。 #### ...

    JAVA处理日期时间常用方法

    在处理日期和时间时,一个常见的需求是获取特定月份的最大天数,这可以通过`Calendar`的`getActualMaximum()`方法实现,如`cal.getActualMaximum(Calendar.DAY_OF_MONTH)`。 如果你需要进行更复杂的日期时间操作,...

    java使用OpenCV从视频文件中获取帧

    本文将详细介绍如何使用Java和OpenCV从视频文件中获取帧,并提供了具体的代码实例。 OpenCV是计算机视觉和机器学习的开源库,它提供了大量的图像和视频处理函数库。Java是最流行的编程语言之一,使用Java和OpenCV...

    java 使用GregorianCalendar类获取系统的当前时间

    它是`Calendar`类的一个具体实现,能够处理公历(格里高利历)中的日期和时间。当我们需要获取系统的当前时间时,`GregorianCalendar`类提供了一个方便的方法。下面将详细介绍如何使用`GregorianCalendar`来获取系统...

    Java获取各种常用时间方法

    根据给定文件的信息,我们可以总结出以下关于Java中获取各种常用时间的方法的知识点: ### Java获取各种常用时间方法 在Java编程中,处理日期和时间是常见需求之一。本篇文章将详细介绍如何使用Java来获取一些常用...

    java操作时间工具类

    下面我们将详细探讨Java中处理时间的相关知识点。 在Java中,日期和时间的处理主要涉及到以下几个类: 1. `java.util.Date`:这是Java早期提供的日期类,它包含了日期和时间的信息。但是,由于这个类的设计并不...

    java 字符串 排序 源代码

    它可能有一个`main`方法作为程序的入口点,以及其他的辅助方法来实现具体功能。 8. **编程实践**:良好的编程实践包括使用适当的变量命名,添加注释以解释代码功能,以及遵循代码格式规范,使得代码易于阅读和维护...

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

    对于`SyncTime.java`的具体实现,我们可以假设它可能包含了如下关键代码段: ```java import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class SyncTime { ...

    java代码生成工具

    自动化的代码生成减少了手动编写这些通用代码的时间,使开发者能更专注于业务逻辑的实现。 3. **MyBatis**: MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC...

    java获取各进程的信息

    下面通过一个示例程序来具体说明如何使用Sigar来获取进程的PID、用户、启动时间、大小、所占内存、状态、运行时间、CPU使用率以及命令等信息。 #### 示例代码分析 ```java private static final int SLEEP_TIME = ...

Global site tag (gtag.js) - Google Analytics