zoukankan      html  css  js  c++  java
  • 12、日期类型

    获取毫秒数

    工作中基本上都会需要使用对时间的操作,java也提供了一些时间相关的类。
    下面代码可以获取自 1970年1月1日 00时00分00秒 000毫秒 到当前的毫秒数。

    package com.monkey1024.date;
    
    /**
     * 获取自 1970年1月1日 00时00分00秒 000毫秒 到当前的毫秒数
     * 演示String和StringBuffer分别进行字符串拼接所需要的毫秒数
     */
    public class DateTest01 {
    
        public static void main(String[] args) {
    
            long now = System.currentTimeMillis();
            System.out.println(now); 
    
            String s = "";
            StringBuffer sb = new StringBuffer(); 
            //获取拼接前的毫秒数
            long before = System.currentTimeMillis();
            for(int i=0; i<=100; i++){
                // s += i;拼接String
                // sb.append(i);拼接StringBuffer
            }
            //拼接后的毫秒数
            long after = System.currentTimeMillis();
            //总共耗时毫秒
            System.out.println(after - before);
        }
    
    }

    获取系统当前时间

    在java.util包下面有个Date类,通过这个类可以获取系统的当前时间

    package com.monkey1024.date;
    
    import java.util.Date;
    
    /**
     * 
     * 获取系统当前时间
     * 
     */
    public class DateTest02 {
    
        public static void main(String[] args) {
            //获取系统当前时间    
            Date nowTime = new Date();
            System.out.println(nowTime); 
    
            Date d1 = new Date(0);//如果构造方法中参数传为0代表的是1970年1月1日
            System.out.println(d1);
        }
    
    }

    日期格式化类

    上面代码中打印的日期格式不太符合中国的风格,国人一般习惯的时期格式是:
    1970年01月01日 00时00分00秒

    在java.text包下有个SimpleDateFormat类,通过这个类可以将日期修改为我们想要的风格

    package com.monkey1024.date;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 
     * 日期格式化
     * 
     */
    public class DateTest02 {
    
        public static void main(String[] args) {
            //获取系统当前时间    
            Date nowTime = new Date();
            System.out.println(nowTime); 
    
            Date d1 = new Date(0);//如果构造方法中参数传为0代表的是1970年1月1日
            System.out.println(d1);
    
            //1.创建日期格式化对象
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");
            //可以改成其他格式
            //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
            //2.开始格式化(Date--->String)
            String strTime = sdf.format(nowTime);
    
            System.out.println(strTime); 
        }
    
    }

    上面代码中需要注意大小写区分
    y表示年
    M表示月
    d表示日
    H表示小时
    m表示分钟
    s表示秒
    S表示毫秒

    将String类型转换为Date类型

    package com.monkey1024.date;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 
     * 将String类型转换为Date类型
     * 
     */
    public class DateTest03 {
    
        public static void main(String[] args) {
            String strTime = "2017年01月01日 00:00:00 000";
    
            //将String日期转换成日期类型Date
            //String-->Date
    
            //1.创建日期格式化对象
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS"); //格式不能随意,应该和上面的字符串格式相同。
    
            //2.将字符串转换成日期类型
            Date d = new Date();
            try {
                d = sdf.parse(strTime);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
            System.out.println(d); 
        }
    
    }

    Calendar简介

    Calendar 类是一个抽象类,为操作日历方面提供了一些方法

    package com.monkey1024.date;
    
    import java.util.Calendar;
    
    /**
     * 
     * Calendar
     * 
     */
    public class DateTest04 {
    
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
    
            //查看当前日期是星期几
            int i = c.get(Calendar.DAY_OF_WEEK);
            System.out.println(i); //外国人将周日看做是第一天
             System.out.println(c.get(Calendar.DAY_OF_MONTH));
    
        }
    
    }

    小练习:

    1.编写代码获取2008年8月8日是星期几?
    2.算一下你来到这个世界多少天?

    1.分析:首先获取2008年8月8日的Date类型,然后通过Calendar里面的DAY_OF_WEEK属性可以判断出示星期几

    package com.monkey1024.date;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * 
     * 编写代码获取2008年8月8日是星期几
     * 
     */
    public class Exercise01 {
    
        public static void main(String[] args) {
             Calendar c = Calendar.getInstance();
             //获取2008-8-8的日历
             String strTime = "2008-08-08";
             Date d = new Date();
            try {
                d = new SimpleDateFormat("yyyy-MM-dd").parse(strTime);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
             c.setTime(d);
             System.out.println(c.get(Calendar.DAY_OF_WEEK));
        }
    
    }

    2.分析:获取出生日期和当前日期的Date类型,然后将两个日期的毫秒值做减法,之后用这个毫秒值除以1000,再除以60,再除以60,再除以24得到天

    package com.monkey1024.date;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 
     * 算一下你来到这个世界多少天
     * 
     */
    public class DateTest04 {
    
        public static void main(String[] args) throws ParseException {
            //生日
            String birthday = "2016年06月15日";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
            //将生日字符串转换成日期对象
            Date d1 = sdf.parse(birthday);
            Date d2 = new Date();
            //将两个日期的毫秒值做减法
            long time = d2.getTime() - d1.getTime();
            //除以1000,再除以60,再除以60,再除以24得到天 
         System.out.println(time / 1000 / 60 / 60 / 24 );
  • 相关阅读:
    转】Apache解决高并发和高可用
    Kafka学习(一)配置及简单命令使用
    unity3d教程动态创建简单平面地形
    LeetCode: Unique Binary Search Trees [095]
    德惠也有星巴克
    一个css和js结合的下拉菜单,支持主流浏览器
    【图像处理】人类视觉成像原理
    windows使用nginx+memcached实现负载均衡和session或者缓存共享
    OpenCV基础篇之画图及RNG随机数对象
    在阿里云上布置git server
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10123458.html
Copyright © 2011-2022 走看看