笔记总结:

/**与时间相关的类: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. 在C/C++中常用的符号

    C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一些 ...

  2. java基础系列(一):Number,Character和String类及操作

    这篇文章总结了Java中最基础的类以及常用的方法,主要有:Number,Character,String. 1.Number类 在实际开发的过程中,常常会用到需要使用对象而不是内置的数据类型的情形.所 ...

  3. 【C/C++开发】运算符重载

    c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁.高效.在c++中不止函数可以重载,运算符也可以重载.由于一般数据类型间的运算符没有重载的必要, ...

  4. 基于MSP430G2231实现多路数据采集器

    基于MSP430G2231实现多路数据采集器 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电 ...

  5. Jquery回到顶部插件【query.scrollUp.js】使用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta na ...

  6. Linux内核编译、安装流程

    原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907 此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请 ...

  7. CentOS7.0 yum安装 docker

    一.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . root 用户登录操作! 通过  ...

  8. HashSet和HashMap

    HashMap 概念和特征  概念:以键值对的形式存储数据,由键映射到值,核心在于Key上.  特征:键不能重复,值可以重复:key-value允许为null.     HashMap   Since ...

  9. Python 第一式

    @Codewars Python练习 question ** Dashatize it ** Given a number, return a string with dash'-'marks bef ...

  10. Hibernate一对多自关联、多对多关联

    今天分享hibernate框架的两个关联关系    多对多关系注意事项 一定要定义一个主控方 多对多删除 主控方直接删除 被控方先通过主控方解除多对多关系,再删除被控方 禁用级联删除 关联关系编辑,不 ...