java常用类(2)

三、时间处理相关类

Date类:计算机世界把1970年1月1号定为基准时间,每个度量单位是毫秒(1秒的千分之一),用long类型的变量表示时间。

Date分配Date对象并初始化对象,以表示自从标准基准时间(称为“历元”(epoch),即1970年1月1日08:00:00GMT)以来的指定毫秒数。

示例:

package cn.tanjianjie.test;import java.util.Date;/** * 测试Date类的常见用法 */public class TestDate {    public static void main(String[] args){        //获得当前电脑时刻        Date d=new Date();        System.out.println(d);        //获得毫秒数        Date d1=new Date(2000);        System.out.println(d1);        System.out.println(d.getTime());//返回自1970年1月1日08:00:00GMT以来此Date对象表示的毫秒数        Date d2=new Date();        System.out.println(d2.getTime());        System.out.println(d2.after(d));//d2>d=true;d2<d=false        Date d3=new Date(2020-1900,3,10);//表示2020年4月10日        System.out.println(d3);    }}运行结果:

DateFormat类的作用:把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。DateFormat是一个抽象类,一般使用它的子类SimpDateFormat类来实现。示例: package cn.tanjianjie.test;import java.text.ParseException;import java.util.Date;import java.text.SimpleDateFormat;public class DateFormat { public static void main(String[] args) throws ParseException { //把时间对象按照“格式字符串指定的格式”转换成相应的字符串 SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String str=df.format(new Date(4000000)); System.out.println(str); //把字符串对象按照“格式字符串指定的格式”转换成相应的时间对象 SimpleDateFormat df2= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date=df2.parse("2019-01-26 10:30:34"); System.out.println(date); //输出今天是这个月中第几天 SimpleDateFormat df3= new SimpleDateFormat("D"); String str3=df3.format(new Date()); System.out.println(str3); }}运行结果:

Calender日历类:

Calender类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示与计算。

GregorianCalender是Canlender的一个子类,提供了世界上大多数国家、地区使用的标准日历系统。

注意:月份的表示,一月为0,二月为1,以此类推十二月为11。

示例:

package cn.tanjianjie.test;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class TestCalendar {    public static void main(String[] args) {        //获得日期相关元素        Calendar calendar = new GregorianCalendar(2019, 1, 26, 10, 30, 34);        int year = calendar.get(calendar.YEAR);        int month = calendar.get(calendar.MONTH);        int day = calendar.get(calendar.DATE);//也可以使用DAY_OF_MONTH.        int weekday = calendar.get(calendar.DAY_OF_WEEK);//星期几。1-7.1表示星期天,2表示星期一,以此类推7表示星期六        System.out.println(year);        System.out.println(month);        System.out.println(day);        System.out.println(weekday);        //设置日期相关元素        Calendar c2 = new GregorianCalendar();        c2.set(Calendar.YEAR, 2019);        System.out.println(c2);        //日期的计算        Calendar c3 = new GregorianCalendar();        c3.add(Calendar.DAY_OF_WEEK, -2);//星期中往前两天        System.out.println(c3);        //日期对象和时间对象的转化        Date d4 = c3.getTime();        Calendar c4 = new GregorianCalendar();        c4.setTime(new Date());//时间对象转化成日期对象        printCalendar(c4);    }    public static void printCalendar(Calendar c){        //打印:2019年01月26日 11:23:29 周六        int year=c.get(Calendar.YEAR);        int month=c.get(Calendar.MONTH);        int date=c.get(Calendar.DAY_OF_MONTH);        int dateweek=c.get(Calendar.DAY_OF_WEEK);        String dayweek2=dateweek==0?"日":dateweek+"";        int hour=c.get(Calendar.HOUR);        int minute=c.get(Calendar.MINUTE);        int second=c.get(Calendar.SECOND);        System.out.println(year+"年"+month+"月"+date+"日"+hour+"时"+minute+"分"+second+"秒"+"  周"+dayweek2);    }}运行结果:

可视化日历程序练习:

package cn.tanjianjie.test;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Scanner;/** * 可视化日历程序 * @author Gsan */public class TestCalendar2 { public static void main(String[] args) throws ParseException { System.out.println("格式为:2019-2-6"); Scanner scanner=new Scanner(System.in); String str=scanner.nextLine(); SimpleDateFormat df=new SimpleDateFormat("yyy-MM-dd"); Date date=df.parse(str);//把字符串对象转换成时间对象 Calendar c=new GregorianCalendar();//获得日期元素 c.setTime(date); System.out.println("日\t一\t二\t三\t四\t五\t六"); int day=c.get(Calendar.DAY_OF_MONTH);//获得日期 int days=c.getActualMaximum(Calendar.DATE);//取到最大一天,防止后面接下一月的最大天数 c.set(Calendar.DAY_OF_MONTH,1); //日历前面的空格,方便接上一个月 for(int i=0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++){ System.out.print("\t"); } for(int i=1;i<=days;i++){//获得一个月的时间29就是29,28就是28,30就是30,31就是31 if(day==c.get(Calendar.DAY_OF_MONTH)){//当天加*号 System.out.print(c.get(Calendar.DAY_OF_MONTH)+"*\t"); }else{ System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t"); } if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){ System.out.println();//换行 } c.add(Calendar.DAY_OF_MONTH,1);//每打印一次就加一 } }} 运行结果:

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

java.util.Date和java.sql.Date的区别和相互转化

java.util.Date是在除了SQL语句的情况下面使用的。java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建。java.util.Date是java.sql.Date的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用