笔记总结:

/**与时间相关的类:System_Date_SimpleDateFormat_Calendar类
* 1.system 类下的currentTimeMillis()
* 输出从1970年至今的时间的毫秒数, 运行两次即可用于统计时间间隔!
* 2.Date() 类:java.util.Date : toString()/getTime()--返回long型64位整数 ;
* 以及他的子类java.sql.Date
* 3.SimpleDateFormat 类:(国际化)
* 格式化: ①构造器: SimpleDateFormat() / SimpleDateFormat(String pattern) :常用pattern:"G yyyy:MM:dd 'at' HH:mm:ss "
* ② String str=sdf.format(new Date()) : 利用sdf format一个Date()对象,格式化为字符串输出即可!
* 解析:
* ① 利用parse进行转换, Date date1=sdf.parse("18-10-20 上午10:55");
* ② 直接输出Date().toString() 显示Date() 的标准时间!
* 4.Calendar 类:
* ① Calendar c=Calendar.getInstance(); //实现Calendar的引用,因为它没有构造器
* ②get(field) / set(field,number) /add(field,number): number可以表示为正负数
* ③DAte getTime() /setTime()(Date d)
*/

测试代码:

public class TestDate {

    @Test//1.Date类
public void test1(){
Date d1=new Date();
System.out.println(d1.toString());
System.out.println(d1.getTime());long x=d1.getTime();
Date d2=new Date(x);
System.out.println(d2);
}
@Test //2.SimpleDateFormat
public void test2() throws Exception{
//1.格式化1,Date类型转String
SimpleDateFormat sdf=new SimpleDateFormat();
String str=sdf.format(new Date());
System.out.println(str); //18-10-20 上午10:55
//2.格式化2
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss");
str=sdf1.format(new Date());
System.out.println(str); //2018:10:20 at 11:10:53
//3.解析 ,字符串转 Date类型
Date date1=sdf.parse("18-10-20 上午10:55");
System.out.println(date1); //Sat Oct 20 10:55:00 CST 2018 Date date2=sdf1.parse("2018-10-20 at 10:55:32");
System.out.println(date2);
}
@Test //3.Calendar() get
public void test4(){
Calendar c=Calendar.getInstance(); //实现Calendar的引用 System.out.println("今天是本月的第几天? "+c.get(Calendar.DAY_OF_MONTH));
System.out.println("今天的星期几: "+(c.get(Calendar.DAY_OF_WEEK)-1) );
//打印当前时分秒
int h=c.get(Calendar.HOUR_OF_DAY); //不要用Calendar.HOUR,不然12点就成了0点
int m=c.get(Calendar.MINUTE);
int s=c.get(Calendar.SECOND);
System.out.println("当前Calendar的 时分秒: "+h+":"+m+":"+s); c.set(Calendar.DAY_OF_MONTH,23);
Date d=c.getTime();
System.out.println("更新后的Date时间: "+d);
}
}

输出结果:

Sat Oct 20 13:13:33 CST 2018
1540012413382
Sat Oct 20 13:13:33 CST 2018
18-10-20 下午1:13
2018-10-20 at 13:13:33
Sat Oct 20 10:55:00 CST 2018
Sat Oct 20 10:55:32 CST 2018
今天是本月的第几天? 20
今天的星期几: 6
当前Calendar的 时分秒: 13:13:33
更新后的Date时间: Tue Oct 23 13:13:33 CST 2018

 后续补上-解决后缀.000Z 的时区问题

测试代码:

@Test
public void test01() throws ParseException {
//方法一: 暴利删除后续字符
String s=new String("2019-01-31T16:00:00.00");
int pos=s.lastIndexOf(".");
if(pos!=-1){
s=s.substring(0,pos);
System.out.println(s);
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(sdf.parse(s)+"\n");
    //进行时区的转换
String date = "2016-08-15T16:00:00.000Z";
date = date.replace("Z", " UTC");
System.out.println(date);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
Date d = format.parse(date);
System.out.println(d);
}

输出结果:

2019-01-31T16:00:00
Thu Jan 31 16:00:00 CST 2019 2016-08-15T16:00:00.000 UTC
Tue Aug 16 00:00:00 CST 2016

参考博客:

https://blog.csdn.net/m0_37983376/article/details/78202770    解决后缀.000Z 的时区问题

https://www.cnblogs.com/myseries/p/7589408.html    java Date时间的各种转换方式和Mysql存时间类型字段的分析

Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题的更多相关文章

  1. Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式

    要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...

  2. Java中的时间日期处理

    程序就是输入——>处理——>输出.对数据的处理是程序员需要着重注意的地方,快速.高效的对数据进行处理时我们的追求.其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理 ...

  3. 第28天学习打卡(Date和Calendar类 基本类型的包装类 集合 增强for循环 )

    Date和Calendar类 简介 日期和日历类,用于操作日期相关信息. 构造方法 Date(): 构造一个日期对象,当前系统时间,精确到毫秒. Date(long): 构造一个日期对象,时间为自&q ...

  4. 时间日期相关:Date类、DateFormat类、Calendar类

    1 Date类 类 Date 表示特定的瞬间,精确到毫秒. 1秒=1000毫秒 毫秒的0点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 时间和日期的计算,必须依赖毫秒值. Sys ...

  5. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  6. Java 中的时间日期 API

    自从 14 年发布 Java 8 以后,我们古老 java.util.Date 终于不再是我们 Java 里操作日期时间的唯一的选择. 其实 Java 里的日期时间的相关 API 一直为世猿诟病,不仅 ...

  7. Java日期类:Date和Calendar的使用

    总是使用这两个类,总是需要百度.还不如一次全部整理完. 一.介绍: Date 类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年 ...

  8. Java 8 的时间日期 API

    上一篇文章『Java 的时间日期 API』中,我们学习了由 Date.Calendar,DateFormat 等组成的「传统时间日期 API」,但是传统的处理接口设计并不是很友好,不易使用.终于,Ja ...

  9. 日期时间类:Date,Calendar,计算类:Math

    日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms). 计算机中时间2 ...

随机推荐

  1. 图形学入门(3)——区域填充算法(region filling)

    继续图形学之旅,我们已经解决了如何画线和画圆的问题,接下来要解决的是,如何往一个区域内填充颜色?对一个像素填充颜色只需调用SetPixel之类的函数就行了,所以这个问题其实就是:如何找到一个区域内的所 ...

  2. Qt598x64vs2017.跨线程传递std::string

    1.Qt编译的时候 提示 str::string 需要在main(...)中注册什么的(大概是这个意思,记不清了),于是 在main(...)中调用了 “qRegisterMetaType<st ...

  3. 单线程与多线程的应用 --Python3

    1.单线程应用 from time import ctime, sleep from time import ctime, sleep class ThreadClass: def say(self) ...

  4. K8S从入门到放弃系列-(1)环境初始化

    一.系统规划  主机名 IP   组件  k8s-master01 10.10.0.18 etcd.kube-apiserver.kube-controller-manager.kube-schedu ...

  5. C++之父给 C 程序员的建议

    1. 在 C++中几乎不需要用宏, 用 const 或 enum 定义显式的常量, 用 inline 避免函数调用的额外开销,用模板去刻画一族函数或类型,用 namespace 去避免命名冲突. 2. ...

  6. Windows10下安装numpy

    1.https://bootstrap.pypa.io/get-pip.py 下载get-pip.py(右键另存为即可) 2.命令行下在get-pip.py所在文件夹下运行get-pip.py 3.命 ...

  7. 理解Python函数和方法

    什么是函数? 函数是抽象出的一组执行特定功能的重复代码,通俗理解,就是对一些重复的工作进行封装和然后直接调用,避免重复造轮子. Python中的函数如何定义? 使用def关键字,结构如下: def 函 ...

  8. 案例-使用MapReduce实现join操作

    哈喽-各位小伙伴们中秋快乐,好久没更新新的文章啦,今天分享如何使用mapreduce进行join操作. 在离线计算中,我们常常不只是会对单一一个文件进行操作,进行需要进行两个或多个文件关联出更多数据, ...

  9. sudo pip3找不到命令

    转自: https://blog.csdn.net/Cryhelyxx/article/details/53384004 编辑/etc/sudoers 找到Defaults env_reset, 将其 ...

  10. 微信支付之二维码支付(native)

    HoJe男孩子你要加油阿 准备材料微信支付需要的参数统一下单二维码回调接口用到的工具类 . 准备材料 首先肯定是要有微信的开发文档开发文档地址再然后就是一些必的参数 注意:回调地址异步接收微信支付结果 ...