Date类、SimpleDateFormat类
Date
构造方法:
1、无参数构造方法:
Date date = new Date();
System.out.println(date);// Thu Mar 28 16:28:40 CST 2019,重写了toString方法,打印系统的当前时间
```、
2、有参数的构造方法:参数为long类型
Date date2 = new Date(73298479832L);
System.out.println(date2);// Fri Apr 28 16:41:19 CST 1972,这是参数对应的时间
###成员方法:
1、
long getTime():把系统当前时间转化为毫秒值,相当于System.currentTimeMillis()
##SimpleDateFormat
###DateFormat类是一个抽象类
java.text.DateFormat:是日期/时间格式化子类的抽象类
作用:
格式化(也就是日期 -> 文本)、解析(文本->日期)
成员方法:
String format(Date date):按照指定的格式把Date日期格式化为符合模式的字符串
Date parse(String source):把符合模式的字符串解析为Date日期
DateFormat是一个抽象类,无法直接创建对象,可以使用他的子类```java.text.SimpleDateFormat```创建对象
java.text.SimpleDateFormat extends Date
该类的构造方法:
SimpleDateFormat(String pattern)
// pattern是指定的模式
// 写对应的模式,会把模式替换为对应的格式的日期,年月日时分秒这些字母不能变化,但是连接符号可以变化,比如:
pattern1 = “yyyy-MM-dd HH:mm:ss";
pattern2 = "yyyy年MM月dd日 HH时mm分ss秒”;
####使用DateFormat类中的format方法把日期格式转为文本:
1、创建SimpleDateFormat对象,并且在构造方法中传递指定的模式字符串
2、调用SimpleDateFormat对象的方法format,按照构造方法中的指定模式,将日期转化为字符串(文本)
// 1、创建SimpleDateFormat对象,并且在构造方法中传递指定的模式字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
// 2、调用SimpleDateFormat对象的方法format,按照构造方法中的指定模式,将日期转化为字符串(文本)
Date date = new Date();
String d = sdf.format(date);
System.out.println(date);// Thu Mar 28 19:57:38 CST 2019
System.out.println(d);// 2019年03月28日 19时57分38秒
####使用DateFormat类中的parse方法,把文本解析为日期
使用步骤:
1、创建SimpleDateFormat对象,并且在构造方法中传递指定的模式字符串
2、调用SimpleDateFormat对象的方法parse,把符合构造方法中的模式的字符串解析为日期
注意:
parse方法声明了一个异常叫ParseException,如果字符串和构造方法的模式不一样,就会抛出这个异常调用一个抛出异常的方法有两种处理方式,要么throw继续抛出这个异常,要么就try catch自己自己处理这个异常
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");// 构造方法里的模式串
Date date = sdf.parse("2019年03月28日 19时57分38秒");// 这个模式串要和构造方法的模式串一样(否则就有异常),返回的是一个Date对象
System.out.println(date);// Thu Mar 28 19:57:38 CST 2019
问题:一个人活了多少天了?
步骤:
计算一个人出生了多少天了
1.Scanner输入出生日期
2.使用DateFormat的parse方法把字符串转为Date对象
3、把这个对象转化为毫秒值
4、获取当前的毫秒值
5、二者相减
6、差值转为天
public class Practise {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your birthday with format : yyyy-mm-dd");
String date = sc.next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birthday = sdf.parse(date);
long birthTime = birthday.getTime();
long todayTime = new Date().getTime();
long dis = todayTime - birthTime;
System.out.println(dis/1000/60/60/24);
}
}
Enter your birthday with format : yyyy-mm-dd
1995-03-06
8788
Date类、SimpleDateFormat类的更多相关文章
- 使用 Date 和 SimpleDateFormat 类表示时间、Calendar类和Math类
一. Date 和 SimpleDateFormat类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当 ...
- Java学习--使用 Date 和 SimpleDateFormat 类表示时间
使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...
- 使用Date和SimpleDateFormat类表示时间
Date类: 使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下: Date d = new Date(); System. ...
- 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类
日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...
- 使用 Date 和 SimpleDateFormat 类表示时间
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的Date类.这个类最主要的作用就是获取当前时间,我们来看下Date的类的使用: Date d=new Dat ...
- Date Math SimpleDateFormat 类
Date 和 SimpleDateFormat /* Date 日期类 许多方法都被Calendar取代了 Date() 获取当前时间 使用概率最高 Calendar 类用常量获取当前时间 一般很少 ...
- Date 和 SimpleDateFormat 类表示时间
Date now=new Date(); // 使用format()方法将日期转换为指定格式的文本 SimpleDateFormat sdf1 = new SimpleDateFormat(" ...
- 日期操作类--SimpleDateFormat类
使用SimpleDateFormat格式化日期 SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类.SimpleDateFormat允许你选择任何用户自定义日期时间格式来 ...
- Java—包装类、Date和SimpleDateFormat、Calendar类
包装类 基本数据类型不能调用方法,功能简单,为了让基本数据类型也具备对象的特性,Java为每个基本数据类型提供了一个包装类,这样就可以像操作对象那样来操作基本数据类型. 基本类型和包装类之间的对应关系 ...
- 处理时间的类 —— System类、Date类 、SimpleDateFormat类 与 Calendar类
在我们以往的编程中,就有过通过运行前和运行后时间差来判断时间复杂度的例子,再扯得远一点,我们在C语言中制造随机数的操作,也要用到有关时间的函数.而且,在我们未来的编程中,也会时不时要用到能够读取当前时 ...
随机推荐
- Hdoj 1312.Red and Black 题解
Problem Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...
- 【arc073e】Ball Coloring(线段树,贪心)
[arc073e]Ball Coloring(线段树,贪心) 题面 AtCoder 洛谷 题解 大型翻车现场,菊队完美压中男神的模拟题 首先钦定全局最小值为红色,剩下的袋子按照其中较大值排序. 枚举前 ...
- LVM-COW写实备份
[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"/dev/sdb1 1 9660 77593918+ 8e L ...
- NOIP2018保卫王国
题目大意:给一颗有点权的树,每次规定两个点选还是不选,求这棵树的最小权点覆盖. 题解 ZZ码农题. 要用动态dp做,这题就是板子,然鹅并不会,留坑代填. 因为没有修改,所以可以静态倍增. 我们先做一遍 ...
- MongoDb 命令查询所有数据库列表
原文:http://blog.csdn.net/huxu981598436/article/details/47216493 MongoDb 命令查询所有数据库列表 CODE: > show d ...
- tyvj/joyoi 1374 火车进出栈问题(水水版)
我受不了了. Catalan数第100项,30000项,50000项,cnm 这tm哪里是在考数学,分明是在考高精度,FFT...... 有剧毒! 我只得写高精度,只能过100的那个题,两个进化版超时 ...
- The 2018 ACM-ICPC Asia Beijing Regional Contest
http://hihocoder.com/problemset/problem/ #1870 : Jin Yong’s Wukong Ranking List 我是每加1个点就dfs判断1次. 正解是 ...
- Day23--Python--常用模块02--序列化,configparser
1. 序列化 把对象打散成bytes或者字符串. 方便存储和传输 序列化 把bytes或者字符串转换回对象. 反序列化 2. pickle(比较重要) 把python中所有的对象都可以转化成bytes ...
- TestNg 2.套件测试
看一下我的目录结构,新建一个包,名字叫做suite,主要为了做套件的测试用.然后在resource下新建一个文件,一般的叫做testng.xml,我这里随便起个名字,叫做suite.xml. 运行的时 ...
- (贪心)P1223 排队接水 洛谷
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...