java常用类(2)

Wesley13
• 阅读 1098

三、时间处理相关类

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);    }}运行结果:

java常用类(2)

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);

}}运行结果:

java常用类(2)

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);    }}运行结果:

java常用类(2)

可视化日历程序练习:

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);//每打印一次就加一             }     }}

运行结果:

java常用类(2)

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Wesley13 Wesley13
3年前
java.util.Date和java.sql.Date的区别和相互转化
java.util.Date是在除了SQL语句的情况下面使用的。java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建。java.util.Date是java.sql.Date的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用
Wesley13 Wesley13
3年前
Java 日期时间
java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。Date() 使用当前日期创建对象Date(longmillisec) 使用时间戳 即 从1970年1月1日开始的毫秒数。Date对象创建以后,可以调用下面的方法。1.booleanafter(Datedate)
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这