日期操作类
        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. Erase-Remove 惯用法

    看到<Effective STL>条款 9 的时候想到了我以前复习的"如何正确使用迭代器删除元素",我面试时使用的也是里面的方法,看面试官的反应好像也没有什么问题,还问 ...

  2. 微信小程序Canvas添加水印字体,通过setGlobalAlpha设置字体透明度。

    微信小程序自带的设置透明度只有setGlobalAlpha,但是CanvasContext.setGlobalAlpha设置透明度,是全局透明,整张图片都透明了.所以直接使用是不行的. 换种思路实现: ...

  3. 如何用redis统计海量UV?

    前言 我们先思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现? 统计uv的常用方法以及优缺点 其 ...

  4. 每日总结:Java基本语法 (2021.9.23)

         对象:对象是类的一个实例,有状态和行为. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法. 实例变量:每个对象都有独特的实例变量,对象的状态由这些实 ...

  5. pycharm中设置自己的文件模板

    File>>Settings>>Editor>>File and Code Templates 选择文件类型Python Scripts,输入文件模板类型 #!/u ...

  6. 【数据结构与算法Python版学习笔记】递归(Recursion)——定义及应用:分形树、谢尔宾斯基三角、汉诺塔、迷宫

    定义 递归是一种解决问题的方法,它把一个问题分解为越来越小的子问题,直到问题的规模小到可以被很简单直接解决. 通常为了达到分解问题的效果,递归过程中要引入一个调用自身的函数. 举例 数列求和 def ...

  7. Shiro反序列化的检测与利用

    1. 前言 Shiro 是 Apache 旗下的一个用于权限管理的开源框架,提供开箱即用的身份验证.授权.密码套件和会话管理等功能. 2. 环境搭建 环境搭建vulhub 3. 如何发现 第一种情况 ...

  8. 【二食堂】Alpha - Scrum Meeting 10

    Scrum Meeting 10 例会时间:4.20 18:00~18:20 进度情况 组员 昨日进度 今日任务 李健 1. 与柴博合作完成登录注册页面issue 继续完成登录注册页面issue 柴博 ...

  9. 搬运1:关于对C语言中数组名取地址加减等操作的一点探究

    对于数组名取地址强制转换的操作 偶然在晚上学了C语言指针后网页闲逛找题时,被一个数组名取地址搞糊涂了,在自己试验加探索后我稍微悟了一点东西. 代码如下: #include<stdio.h> ...

  10. opencv学习(一)——图像入门

    图像入门 一.读取图像 在opencv中使用cv.imread(filename, flags)函数读取图像.filename参数表示读取图像的路径.读取图像的路径应完整给出,且不能含有中文,否则在调 ...