日期操作类
        Date 类与 long 数据类型的转换
        SimpleDateFormat 类的使用
        Calendar 类的使用
        
        如果要想取得当前的日期时间,直接实例化 java.util.Date; 类即可取得

package cn.mysterious.study3;

import java.util.Date;

public class DateClass {

    public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date();
System.out.println(date);
} }
/*
结果:
Tue Sep 05 23:23:11 CST 2017
*/

虽然 Date 类的对象可以取得当前的日期时间,但是结果是这个日期时间的可读性不合适中国人
        一直强调,日期时间 = long 数据内容。这一点在 Date 两类上有很好的体现
            构造方法: public Date(long date)
            将 Date 以 long 型返回: public long getTime()
            
        范例:实现转换

package cn.mysterious.study3;

import java.util.Date;

public class DateClass {

    public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date(); // Date 类对象
long num = date.getTime(); // 将 Date 以 long 型返回
System.out.println(num);
} }

在实际的使用过程之中,很少会出现这样的转换,但是至少你的头脑中应该清楚,long 和 Date 可以互相转换

    
    日期格式化: SimpleDateFormat (核心,背)
        Date 虽然可以直接进行日期时间的取得,但是大部分情况下这样的日期时间取得并不好用,因为它给出日期时间格式我们很多人看不懂
        所以在java中考虑到了日期的显式格式要求。那么往往最终都会按照 String进行显式
        如果要想实现这样的格式化操作,可以使用 java.text.SimpleDateFormat 类完成,在这个类有以下几个方法:
            构造方法: public SimpleDateFormat(String pattern)
                格式化标记:年(yyyy)月(MM)日(dd)时(HH)分(mm)秒(ss)毫秒(SS)
            将日期格式化为字符串: public final String format(Date date)
            将字符串变为日期时间: public Date parse(String source) throws ParseException
        
        范例:就爱那个日期格式化为字符串

package cn.mysterious.study3;

import java.text.SimpleDateFormat;
import java.util.Date; public class DateClass { public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date(); // Date 类对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
String str = sdf.format(date); // 将日期格式化为字符串
System.out.println(str);
} }

范例:将字符串变为日期时间

package cn.mysterious.study3;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateClass { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String str = "1997-10-01 00:00:00.001";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
Date date = sdf.parse(str); // 将字符串变为日期
System.out.println(date);
} }

总结:现在为止 String,基本类型,Date 已经实现了彻底的转换贯通
            String 变为基本类型:包装类
            基本类型变为 String : String vallueOf();
            Date 与 String 转换: SimpleDateFormat

    Calendar 类
        Calendar 主要的功能是可以进行日期时间的拼凑使用。 Calendar 本身是一个抽象类
        但是现在可以直接利用这个抽象类中提供的 static 方法进行实例化对象的取得:
            public static Calendar getInstance()
        随后可以利用 Calendar 类中的一个方法取得指定的日期时间数据:
            public int get(int field)
        但是在使用此方法的时候需要使用一些特定的常量
        
        范例:取得当前的日期时间

package cn.mysterious.study3;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class DateClass { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Calendar cal = Calendar.getInstance(); // 取得 Calendar 类的实例化对象
StringBuffer buf = new StringBuffer();
buf.append(cal.get(Calendar.YEAR)).append("年");
buf.append(cal.get(Calendar.MONTH) + 1).append("月"); // 它是从0月开始计算的 所以+1
buf.append(cal.get(Calendar.DAY_OF_MONTH)).append("日");
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append("时");
buf.append(cal.get(Calendar.MINUTE)).append("分");
buf.append(cal.get(Calendar.SECOND)).append("秒");
buf.append(cal.get(Calendar.MILLISECOND)).append("毫秒");
System.out.println(buf);
} }

使用 Calendar 的好处是可以方便的计算出日期或时间之间的间隔

    总结:
        java.util.Date; 代表的就是日期时间
        SimpleDateFormat 可以实现字符串与日期间的转换操作

菜鸡的Java笔记 日期操作类的更多相关文章

  1. 菜鸡的Java笔记 数字操作类

    数字操作类        Math 类的使用        Random 类的使用        BigInteger 和 BigDecimal 类的使用                Math 是一 ...

  2. 菜鸡的Java笔记 Object 类

    Object 类        Object类 的主要作用        Object 类的常用方法             内容        虽然有了对象的向上转型,可以解决了参数的统一问题,但是 ...

  3. 菜鸡的Java笔记 实践 - java 数组操作

    讲解一个继承的实现思路                要求定义一个数组操作类(Array类),在这个类里面可以进行整型数组的操作,由外部传入数组的大小        ,并且要求实现数据的保存以及数据的 ...

  4. 菜鸡的Java笔记 - java 常用类库

    CommonClassLibrary 常用类库        定时调度            定时调度指的是每到一个时刻,都会自动的产生某些特定的操作形式                    con ...

  5. 菜鸡的Java笔记 - java 反射机制

    反射机制        1.观察 Class 类的使用        2.利用反射改善工程设计模式        3.反射操作类结构            content (内容)        1. ...

  6. 菜鸡的Java笔记 comparator 比较器

    1.数组操作类: Arrays        2.两种比较器的使用: Comparable Comparator        3.实现二叉树算法            content (内容)   ...

  7. 菜鸡的Java笔记 第三十 - java 异常的捕获及处理

    异常的捕获及处理        1.异常的产生分析以及所带来的影响        2.异常的处理的基本格式        3.异常的处理流程        4.异常的处理模式        5.自定义 ...

  8. 菜鸡的Java笔记 第二十八 - java 包的定义

    包的主要作用以及定义    包的导入操作    系统常见的开发包    jar 程序命令        包的定义        在任何的操作系统之中都有一个统一的共识:同一个目录下不能够存在有相同的文 ...

  9. 菜鸡的Java笔记 第十七 static 关键字

    static 是java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可以定义属性,定义方法        但是在90%的情况下,我们的开发代码很少会去直接编写static*// ...

随机推荐

  1. Docker-Compose的一些常用命令

    一.Docker-Compose简介 1.Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排. Docker-Co ...

  2. Bootstrap的模态框无法弹出的问题

    今天在使用Bootstrap官网所提供的模态框插件时候发现其中的 可选尺寸模态框 无法弹出 在模态框前使用过其他 Bootstrap的js插件,可以正常使用,说明所需依赖js文件已经正常引用 注意:j ...

  3. Go语言之数组与切片基础

    一.数组 数组是同一类型元素的集合,可以放多个值,但是类型一致,内存中连续存储 Go 语言中不允许混合不同类型的元素,而且数组的大小,在定义阶段就确定了,不能更改 1.数组的定义 // 定义一个大小为 ...

  4. 如何通过 Serverless 技术降低微服务应用资源成本?

    前言 在大型分布式 IT 架构领域,微服务是一项必不可少的技术.从本质上来讲,微服务是一种架构风格,将一个大型的系统拆分为多个拥有独立生命周期的应用,应用之间采用轻量级的通信机制进行通信.这些应用都是 ...

  5. 洛谷3195 [HNOI2008]玩具装箱TOY(斜率优化+dp)

    qwq斜率优化好题 第一步还是考虑最朴素的\(dp\) \[dp=dp[j]+(i-j-1+sum[i]-sum[j])^2 \] 设\(f[i]=sum[i]+i\) 那么考虑将上述柿子变成$$dp ...

  6. 更好的 java 重试框架 sisyphus 入门简介

    What is Sisyphus sisyphus 综合了 spring-retry 和 gauva-retrying 的优势,使用起来也非常灵活. 为什么选择这个名字 我觉得重试做的事情和西西弗斯很 ...

  7. Golang通脉之切片

    因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ su ...

  8. 【Java虚拟机1】Java字节码文件格式入门

    第一次学习看字节码文件,这个对工作没什么用,但是会提升内功. 首先介绍两个IDEA插件以及使用: BinEd:以16进制格式查看class文件 使用方法:右键class文件,点击Open as bin ...

  9. OO2020 助教工作总结

    1 我的初衷 这一学期的OO助教工作是我一段宝贵的经历,在其中我学习了很多.见识了很多,收获满满.当时报名OO的初衷主要有三方面.首先,我想说OO是我所上过的最好的一门课之一,这门课有这一套从理论讲授 ...

  10. 了解 js 堆内存 、栈内存 。

    js中的堆内存与栈内存 在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.U ...