java Date类

合集下载

Java中Date类型详解

Java中Date类型详解

Java中Date类型详解⼀、Date类型的初始化1、 Date(int year, int month, int date); 直接写⼊年份是得不到正确的结果的。

因为java中Date是从1900年开始算的,所以前⾯的第⼀个参数只要填⼊从1900年后过了多少年就是你想要得到的年份。

⽉需要减1,⽇可以直接插⼊。

这种⽅法⽤的⽐较少,常⽤的是第⼆种⽅法。

2、这种⽅法是将⼀个符合特定格式,⽐如yyyy-MM-dd,的字符串转化成为Date类型的数据。

⾸先,定义⼀个Date类型的对象 Date date = null; 再定义⼀个String类型的符合格式的字符串 String dateStr = "2010-9-10";把这个字符串进⾏拆分 String[ ] dateDivide = dateStr.split("-"); 把年⽉⽇分别取出,赋给Calendar,⽤ Calendar的getTime();取得⽇期再赋给date。

例如:if(dateDivide.length==3){ int year = Integer.parseInt(dateDivide [0].trim());//去掉空格int month = Integer.parseInt(dateDivide [1].trim());int day = Integer.parseInt(dateDivide [2].trim());Calendar c = Calendar.getInstance();//获取⼀个⽇历实例c.set(year, month-1, day);//设定⽇历的⽇期date = c.getTime();}⼆、Date类型的⽐较Date a;Date b;假设现在你已经实例化了a和ba.after(b)返回⼀个boolean,如果a的时间在b之后(不包括等于)返回trueb.before(a)返回⼀个boolean,如果b的时间在a之前(不包括等于)返回truea.equals(b)返回⼀个boolean,如果a的时间和b相等返回true三、Date类型常⽤的操作函数1// 1.计算某⼀⽉份的最⼤天数2 Calendar time = Calendar.getInstance();3 time.clear();4 time.set(Calendar.YEAR, year); // year 为 int5 time.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认⼀⽉为06int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本⽉份的天数7// 注:在使⽤set⽅法之前,必须先clear⼀下,否则很多信息会继承⾃系统当前时间8// 2.Calendar和Date的转化9// (1) Calendar转化为Date Calendar10 cal = Calendar.getInstance();11 Date date = cal.getTime();12// (2) Date转化为Calendar13 Date date = new Date();14 Calendar cal = Calendar.getInstance();15 cal.setTime(date);16// 3.格式化输出⽇期时间(这个⽤的⽐较多)17 Date date = new Date();18 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");19 String time = df.format(date);20 System.out.println(time);21// 4.计算⼀年中的第⼏星期22// (1)计算某⼀天是⼀年中的第⼏星期23 Calendar cal = Calendar.getInstance();24 cal.set(Calendar.YEAR, 2006);25 cal.set(Calendar.MONTH, 8);26 cal.set(Calendar.DAY_OF_MONTH, 3);27int weekno = cal.get(Calendar.WEEK_OF_YEAR);28// (2)计算⼀年中的第⼏星期是⼏号29 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");30 Calendar cal = Calendar.getInstance();31 cal.set(Calendar.YEAR, 2006);32 cal.set(Calendar.WEEK_OF_YEAR, 1);33 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);34 System.out.println(df.format(cal.getTime()));//输出:2006-01-0235// 5.add()和roll()的⽤法(不太常⽤)36// (1)add()⽅法37 SimpleDateFormat df=newSimpleDateFormat("yyyy-MM-dd");38 Calendar cal = Calendar.getInstance();39 cal.set(Calendar.YEAR, 2006);40 cal.set(Calendar.MONTH, 8);41 cal.set(Calendar.DAY_OF_MONTH, 3);42 cal.add(Calendar.DATE, -4);43 Date date = cal.getTime();44 System.out.println(df.format(date));45 cal.add(Calendar.DATE, 4);46 date = cal.getTime();47 System.out.println(df.format(date));//输出:2006-08-30 2006-09-0348//(2)roll⽅法49 cal.set(Calendar.YEAR, 2006);50 cal.set(Calendar.MONTH,8);51 cal.set(Calendar.DAY_OF_MONTH,3);52 cal.roll(Calendar.DATE, -4);53 date=cal.getTime();54 System.out.println(df.format(date));55 cal.roll(Calendar.DATE,4);56 date=cal.getTime();57 System.out.println(df.format(date));//输出:2006-09-292006-09-0358// 可见,roll()⽅法在本⽉内循环,⼀般使⽤add()⽅法;⼀、Date类型的初始化1、 Date(int year, int month, int date); 直接写⼊年份是得不到正确的结果的。

Java中Date类型

Java中Date类型

Java中Date类型1.1 Date概述java.util.Date类表示特定的瞬间,精确到毫秒。

继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数•public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

•public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

tips: 由于中国处于东八区(GMT+08:00)是比世界协调时间/格林尼治时间(GMT)快8小时的时区,当格林尼治标准时间为0:00时,东八区的标准时间为08:00。

简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。

例如:import java.util.Date;public class Demo01Date {public static void main(String[] args){// 创建日期对象,把当前的时间System.out.println(new Date());// Tue Jan 16 14:37:35 CST 2020// 创建日期对象,把当前的毫秒值转成日期对象System.out.println(new Date(0L));// Thu Jan 01 08:00:00 CST 19 70}}tips:在使用println方法时,会自动调用Date类中的toString方法。

Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。

1.2 Date常用方法Date类中的多数方法已经过时,常用的方法有:•public long getTime()把日期对象转换成对应的时间毫秒值。

java date类型 差值计算

java date类型 差值计算

一、介绍Java是一种面向对象的编程语言,广泛应用于企业级应用开发。

在Java编程中,Date类型是一种用于表示日期和时间的数据类型。

在实际应用中,经常需要计算两个日期之间的差值,比如计算两个日期之间的天数、小时数、分钟数等。

二、Date类型简介1. Date类型是Java中表示日期和时间的类,它包含了年、月、日、小时、分钟、秒等信息。

2. Date类型在Java 8之前被广泛使用,但在Java 8中推出了新的日期时间API,推荐使用新的API来处理日期和时间。

3. Date类型有一些缺陷,比如它不支持国际化、不可变性、不够精确等问题。

在实际开发中,建议尽量使用新的日期时间API。

三、计算两个日期的差值1. 计算两个日期之间的天数差值```javaDate date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2022-01-01");Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2022-01-10");long diff = date2.getTime() - date1.getTime();long diffDays = diff / (24 * 60 * 60 * 1000);System.out.println("两个日期之间的天数差值为:" + diffDays);```2. 计算两个日期之间的小时差值```javaDate date1 = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").parse("2022-01-01 10:00:00");Date date2 = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").parse("2022-01-01 20:00:00");long diff = date2.getTime() - date1.getTime();long diffHours = diff / (60 * 60 * 1000);System.out.println("两个日期之间的小时差值为:" + diffHours); ```3. 计算两个日期之间的分钟差值```javaDate date1 = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").parse("2022-01-01 10:00:00");Date date2 = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss").parse("2022-01-01 10:30:00");long diff = date2.getTime() - date1.getTime();long diffMinutes = diff / (60 * 1000);System.out.println("两个日期之间的分钟差值为:" + diffMinutes);```四、注意事项1. 在Java中,日期和时间的计算涉及到时区、夏令时等问题,需要注意时区和夏令时的影响。

Java对日期Date类进行加减运算、年份加减月份加减、时间差等等

Java对日期Date类进行加减运算、年份加减月份加减、时间差等等

Java对⽇期Date类进⾏加减运算、年份加减⽉份加减、时间差等等实现代码⼀:import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateTestUtil {public static void main(String[] args) throws Exception {SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");String str="20110823";Date dt=sdf.parse(str);Calendar rightNow = Calendar.getInstance();rightNow.setTime(dt);rightNow.add(Calendar.YEAR,-1);//⽇期减1年rightNow.add(Calendar.MONTH,3);//⽇期加3个⽉rightNow.add(Calendar.DAY_OF_YEAR,10);//⽇期加10天Date dt1=rightNow.getTime();String reStr = sdf.format(dt1);System.out.println(reStr);}}注:在Calendar对象的add⽅法中,第⼆个参数为正数表⽰“加”,负数表⽰“减”。

代码⼆: java date ⽇期加减天数测试类代码:import java.text.SimpleDateFormat;import java.util.Date;public class DateTest {public static void main(String[] arg){Date now = new Date();addAndSubtractDaysByGetTime(now,-5);addAndSubtractDaysByGetTime(now,5);addAndSubtractDaysByCalendar(now,-5);addAndSubtractDaysByCalendar(now,5);}public static Date addAndSubtractDaysByGetTime(Date dateTime/*待处理的⽇期*/,int n/*加减天数*/){//⽇期格式SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(df.format(new Date(dateTime.getTime() + n * 24 * 60 * 60 * 1000L)));//System.out.println(dd.format(new Date(dateTime.getTime() + n * 24 * 60 * 60 * 1000L)));//注意这⾥⼀定要转换成Long类型,要不n超过25时会出现范围溢出,从⽽得不到想要的⽇期值return new Date(dateTime.getTime() + n * 24 * 60 * 60 * 1000L);}public static Date addAndSubtractDaysByCalendar(Date dateTime/*待处理的⽇期*/,int n/*加减天数*/){//⽇期格式SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat dd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Calendar calstart = java.util.Calendar.getInstance();calstart.setTime(dateTime);calstart.add(java.util.Calendar.DAY_OF_WEEK, n);System.out.println(df.format(calstart.getTime()));//System.out.println(dd.format(calstart.getTime()));return calstart.getTime();}}运⾏结果:2014-10-062014-10-162014-10-062014-10-16代码三:在⽹上查阅资料,加上⾃⼰总结的⼀些关于Date类的⼯具类。

Date类和SimpleDateFormat类的用法

Date类和SimpleDateFormat类的用法

Date类和SimpleDateFormat类的⽤法Java⽇期时间java.util包提供了Date类来封装当前的⽇期和时间。

Date类提供两个构造函数来实例化Date对象。

第⼀个构造函数使⽤当前⽇期和时间来初始化对象。

1. Date( )第⼆个构造函数接收⼀个参数,该参数是从1970年1⽉1⽇起的毫秒数。

1. Date(long millisec)Date对象创建以后,可以调⽤下⾯的⽅法。

获取当前⽇期时间:Java中获取当前⽇期和时间很简单,使⽤Date对象的toString()⽅法来打印当前⽇期和时间,如下所⽰:1. package educoder;2.3. import java.util.Date;4.5. public class DateDemo {6. public static void main(String args[]) {7. // 初始化 Date 对象8. Date date = new Date();9.10. // 使⽤ toString() 函数显⽰⽇期时间11. System.out.println(date.toString());12. }13. }输出结果:Sun Aug 12 23:33:44 CST 2018⽇期⽐较:Java使⽤以下三种⽅法来⽐较两个⽇期:使⽤getTime()⽅法获取两个⽇期⾃1970年1⽉1⽇经历的毫秒数值,然后⽐较这两个值;使⽤⽅法before(),after()和equals()。

例如,⼀个⽉的12号⽐18号早,则new Date(99, 2, 12).before(new Date (99, 2, 18))返回true;使⽤compareTo()⽅法,它是由Comparable接⼝定义的,Date类实现了这个接⼝。

使⽤SimpleDateFormat格式化⽇期SimpleDateFormat是⼀个以语⾔环境敏感的⽅式来格式化和分析⽇期的类。

java中date类的常用方法

java中date类的常用方法

java中date类的常用方法Java中的Date类是用于表示日期和时间的类,它提供了一系列常用的方法来处理日期和时间的操作。

下面将介绍Date类的一些常用方法。

1. getDate():获取当前日期的天数。

返回值为一个整数,范围从1到31。

2. getMonth():获取当前日期的月份。

返回值为一个整数,范围从0到11,其中0表示一月,11表示十二月。

3. getYear():获取当前日期的年份。

返回值为一个整数,表示当前年份减去1900。

4. getDay():获取当前日期是星期几。

返回值为一个整数,范围从0到6,其中0表示星期日,1表示星期一,以此类推。

5. getHours():获取当前时间的小时数。

返回值为一个整数,范围从0到23。

6. getMinutes():获取当前时间的分钟数。

返回值为一个整数,范围从0到59。

7. getSeconds():获取当前时间的秒数。

返回值为一个整数,范围从0到59。

8. getTime():获取当前日期和时间的毫秒数。

返回值为一个长整型数字,表示从1970年1月1日00:00:00 GMT到当前日期和时间的毫秒数。

9. setTime():设置日期和时间。

接受一个长整型参数,表示从1970年1月1日00:00:00 GMT到所设置日期和时间的毫秒数。

10. after(Date date):判断当前日期是否在指定日期之后。

返回值为一个布尔值,如果当前日期在指定日期之后,则返回true,否则返回false。

11. before(Date date):判断当前日期是否在指定日期之前。

返回值为一个布尔值,如果当前日期在指定日期之前,则返回true,否则返回false。

12. compareTo(Date date):比较当前日期和指定日期的顺序。

返回值为一个整数,如果当前日期在指定日期之前,则返回负数;如果当前日期等于指定日期,则返回0;如果当前日期在指定日期之后,则返回正数。

java中date类的常用方法

java中date类的常用方法Java中Date类的常用方法1. 获取当前日期和时间•Date():创建一个表示当前日期和时间的Date对象。

2. 获取日期/时间的特定部分•getYear():返回日期的年份(从1900开始计算)。

•getMonth():返回日期的月份(0-11表示1-12月)。

•getDate():返回日期的天数(1-31)。

•getDay():返回日期的星期几(0-6表示周日到周六)。

•getHours():返回时间的小时数(0-23)。

•getMinutes():返回时间的分钟数(0-59)。

•getSeconds():返回时间的秒数(0-59)。

3. 设置日期/时间的特定部分•setYear(int year):设置日期的年份。

•setMonth(int month):设置日期的月份。

•setDate(int day):设置日期的天数。

•setHours(int hours):设置时间的小时数。

•setMinutes(int minutes):设置时间的分钟数。

•setSeconds(int seconds):设置时间的秒数。

4. 格式化日期和时间•toString():将Date对象转换为字符串表示形式。

•SimpleDateFormat类:可以使用该类进行更灵活的日期和时间格式化,例如:SimpleDateFormat sdf = new SimpleDateForma t("yyyy-MM-dd");String formattedDate = (date);5. 比较日期和时间•before(Date date):判断当前日期是否在指定日期之前。

•after(Date date):判断当前日期是否在指定日期之后。

•compareTo(Date date):比较两个日期的先后顺序,返回值为负数、零或正数。

6. 计算日期和时间•getTime():返回距离1970年1月1日的毫秒数。

java date before和after的用法-概述说明以及解释

java date before和after的用法-概述说明以及解释1.引言1.1 概述在Java编程中,日期和时间的处理是一项重要的任务。

在处理日期和时间时,常常需要进行比较或者判断时间先后顺序的操作。

Java提供了Date类作为表示日期和时间的类,并且通过before和after方法提供了便捷的日期比较功能。

在本篇文章中,我们将深入探讨Java Date类的before和after方法的用法。

这两个方法可以用来比较两个日期的先后关系,并且返回相应的布尔值。

在接下来的正文部分,我们将首先介绍Java中的Date类,了解它的基本功能和使用方法。

然后,我们将详细讨论Date类的before方法和after方法,探讨它们的使用场景和注意事项。

最后,我们将对所学内容进行总结,并提供一些实际应用场景的示例,以帮助读者更好地理解和运用before和after方法。

通过学习本文,读者将能够全面掌握Java中Date类的before和after 方法的用法,从而在实际开发中更加灵活和高效地处理日期和时间的比较操作。

让我们开始探索吧!1.2文章结构《Java Date before和after的用法》文章结构:1. 引言1.1 概述1.2 文章结构文章将分为以下几个部分:- 正文部分将介绍Java中的Date类以及其常用的before和after方法的用法。

- 结论部分将对这两个方法的使用进行总结,并探讨它们在实际应用中的使用场景。

2. 正文2.1 Java中的Date类- 简要介绍Java中的Date类,提及其在日期和时间处理中的常用性。

2.2 Date类的before方法- 解释before方法的作用,即判断一个日期是否在另一个日期之前。

- 详细介绍before方法的使用方式,包括参数的含义和返回值的含义。

- 给出一些示例代码以帮助读者更好地理解before方法的实际应用。

2.3 Date类的after方法- 解释after方法的作用,即判断一个日期是否在另一个日期之后。

java date 比较时间的方法,并举出例子

java date 比较时间的方法,并举出例子Java中比较时间的方法可以使用Java中的Date类或者Calendar类实现。

其中,Date类在Java8之后被废弃,建议使用Java8中增强的时间类(LocalDate、LocalTime和LocalDateTime等)。

比较两个时间:1. 使用Date类比较两个Date对象之间的时间差,可以使用Date类的compareTo方法或者before和after方法。

其中before方法比较当前时间是否在给定时间之前,after 方法则是比较是否在之后,compareTo方法则是直接比较两个时间的先后顺序。

比较两个时间的示例代码如下:Date date1 = new Date();Date date2 = new Date();int result = date1pareTo(date2);if (result < 0) {System.out.println("date1在date2之前");} else if (result > 0) {System.out.println("date1在date2之后");} else {System.out.println("date1和date2相同");}2. 使用Calendar类Calendar类是Java中比较两个时间的常用方法,可以使用Calendar类的compareT o和after方法来比较两个时间的顺序,这也可以通过比较时间的毫秒数来实现。

比较两个时间的示例代码如下:Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();int result = cal1pareT o(cal2);if (result < 0) {System.out.println("cal1在cal2之前");} else if (result > 0) {System.out.println("cal1在cal2之后");} else {System.out.println("cal1和cal2相同");}比较两个时间的毫秒数:1. 使用Date类Date date1 = new Date();Date date2 = new Date();long diff = date2.getTime() - date1.getTime(); System.out.println("date1和date2相差" + diff + "毫秒");2. 使用Calendar类Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();long diff = cal2.getTimeInMillis() - cal1.getTimeInMillis();System.out.println("cal1和cal2相差" + diff + "毫秒");。

Java日期时间Date类型,long类型,String类型表现形式的转换

Java⽇期时间Date类型,long类型,String类型表现形式的转换1、java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString()); //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000; //得到秒数,Date类型的getTime()返回毫秒数2、由long类型转换成Date类型SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");//前⾯的lSysTime是秒数,先乘1000得到毫秒数,再转为java.util.Date类型java.util.Date dt = new Date(lSysTime1 * 1000);String sDateTime = sdf.format(dt); //得到精确到秒的表⽰:08/31/2006 21:08:00System.out.println(sDateTime);3、"08/31/2006 21:08:00"格式的String转换java.util.Date类型String sDt = "08/31/2006 21:08:00";SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");Date dt2 = sdf.parse(sDt);//继续转换得到秒数的long型long lTime = dt2.getTime() / 1000;//注意HH与hh含认不同,HH表⽰以24⼩时制取,hh表⽰以12⼩时制取常⽤的格式的含义,摘⾃Jdk,注意⼤⼩写的含义通常是不同的:字母含义⽰例y Year 1996;96 哪⼀年M Month in year J uly;Jul;07 ⼀年中的哪⼀⽉m Minute in hour 30 ⼀个⼩时中的第⼏分钟w Week in year 27 ⼀年中的第⼏个星期W Week in month 2 ⼀个⽉中的第⼏个星期D Day in year 189 ⼀年中的第⼏天d Day in month 10 ⼀个⽉中的第⼏天H Hour in day (0-23) 0 ⼀天中的第⼏个⼩时(24⼩时制)h Hour in am/pm (1-12) 12 ⼀天中上午、下午的第⼏个⼩时(12⼩时制)S Millisecond 978 毫秒数s Second in minute 55 ⼀分钟的第⼏秒4、系统当前时间long lSysTime2 = System.currentTimeMillis(); //得到毫秒表⽰的系统当前时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Date类
Date 类
Date 类表示日期和时间
提供操纵日期和时间各组成部分的方法 Date 类的最佳应用之一是获取系统当前时间
获取系统当前时间是一个长整型数据Long, 表示的是从GMT( 格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者 是之后经历的毫秒数.
DateFormat
" yyyy年MM月dd日 HH时mm分ss秒SSS毫秒 "yyyy/MM/dd hh:mm:ss" "EEE, d MMM yyyy HH:mm:ss Z"
public Date parse(String source) ( DateFormat类中 )解析格式化一个字符串时间, 将一个字符串转换成时间 例如:Date d = sdf2.parse("2008/10/28 13:20:22");//注意字符串的格式必须和设定 的格式(sdf2)一致
Calendar(GregorianCalendar)操作方法
rivate void fun3() { Calendar cal = new GregorianCalendar(); cal.set(Calendar.YEAR, 2012); //设置cal的年份为 2012年 System.out.println(cal.get(Calendar.YEAR)); //打印年份 cal.set(Calendar.MONTH, 9); //设置月份 System.out.println(cal.get(Calendar.MONTH)); cal.set(2018, 3, 2); //设置年月日 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sdf.format(cal.getTime())); cal.add(Calendar.YEAR, 2); //年上加2年 cal.add(Calendar.MONTH, 2);//月上加2 System.out.println(sdf.format(cal.getTime())); System.out.println(cal.get(Calendar.DAY_OF_WEEK));//获取星期几
SimpleDateFormat
功能:完成日期的显示格式化
只要通过向SimpleDateFormat 的构造函数传递格式字符串“EEEE-MM-dd-yyyy", 我们就能够指明自己想要的格式. 然后调用DateForma(Date date)方法,得到想 要的格式。 EEEE是星期, MM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式 化的.传递"EE-MM-dd-yyyy"会显示 星期五-02-27-2009
练习
写一程序把格式为 yyyy-MM-dd HH:mm:ss 的字符串,变 为指定的格式(yyyy年MM月dd日 HH时mm分ss秒 星期 **),
日期和时间模式
字母 日期或时间元素 表示 示例 y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数 Number 189 d 月份中的天数 Number 10 F 月份中的星期 Number 2 E 星期中的天数 Text Tuesday; Tue a Am/pm 标记 Text PM H 一天中的小时数(0-23) Number 0 k 一天中的小时数(1-24) Number 24 K am/pm 中的小时数(0-11) Number 0 h am/pm 中的小时数(1-12) Number 12 m 小时中的分钟数 Number 30 s 分钟中的秒数 Number 55 S 毫秒数 Number 978 z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 Z 时区 RFC 822 time zone -0800
Calendar(GregorianCalendar)操作方法
• 1. cal.set(2018, 3, 2); //设置年月日 SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(d.format(cal.getTime())); • 2. cal.add(Calendar.YEAR, 2); //年上加2年
练习
求两个日期之间相隔的天数 写一个方法(例如:fun3("2010-09-20","2010-09-21") ),求 输入的字符串2010-09-20 与 2010-09-21 之间相隔的天数
Calendar 类
我们现在已经能够格式化并创建一个日期对象了, 但是我 们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值 呢?
日期和时间模式
日期和时间模式 结果 "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT "EEE, MMM d, ''yy" Wed, Jul 4, '01 "h:mm a" 12:08 PM "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time "K:mm a, z" 0:08 PM, PDT "yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM "EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700 "yyMMddHHmmssZ" 010704120856-0700 "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
}
练习
打印未来几年的10个黑色星期五(按照 2010-10-11格式 把年月日打印出来) 提示:循环判断一个月的13号是否是星期五
打印未来10个的黑色星期五
private void getBlackFriday() { Calendar cal = new GregorianCalendar(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd EEEE"); cal.set(Calendar.DAY_OF_MONTH, 13); int n = 1; while(n<=10){ if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.FRIDAY){ Date date = cal.getTime(); System.out.println(sdf.format(date)); n++; } cal.add(Calendar.MONTH, 1); }
答案是使用Calendar 类。Calendar 类也是一个抽象类,它 有一个子类GregorianCalendar,接下来我会利用这个子类来演 示这个过程,请看以下代码
使用GregorianCalendar类获取时间相关信息 calendar.get(Calendar.YEAR) 获取年 calendar.get(Calendar.MONTH) + 1) 获取月
DateFormat日期格式化类(抽象类) String format(Date date) 方法用于格式化时间 static DateFormat getDateInstance() 获取日期的DateFormat 对象 static DateFormat getDateTimeInstance() 获取日期-时间的DateFormat 对象 static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)获取给定 日 期和时间格式化风格 DateFormat 对象 (可选参数 short,full, long, medium ,)
相关文档
最新文档