Date,Calendar,SimpleDateFormat时间操作整理

前段时间做了一个倒计时的功能,用到了Date,Calendar,SimpleDateFormat,对它们之间的关系模糊,所以在这进行整理,也加强自己对它们之间关系的认识,同时也方便下次使用:

1,时间

Date date = new Date(); //初始化时间(当前时间为系统默认)
//以毫秒的方式获取时间
long times = date.getTime();//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
date.setTime(long times);//设置时间为指定的long时间
Date date = new Date(times);//初始化时间(当前时间为指定的时间)

2,时间Date和String之间的转换:

1 SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2 //把时间转换为指定字符串格式
3 String time = simpledateformat.format(new Date());
4 //把指定字符串格式转换为时间
5 Date date = simpledateformat.parse(time);

2,时间的获取与加减:

        Calendar calendar = new GregorianCalendar();

     //返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。     Date date = calendar.getTime(); 

int year   = calendar.get(Calendar.YEAR);   //获取年;
        int month  = calendar.get(Calendar.MONTH);  //获取月;
        int date   = calendar.get(Calendar.DATE);   //获取天;
        int hour   = calendar.get(Calendar.HOUR);   //获取小时;
        int minute = calendar.get(Calendar.MINUTE); //获取分钟;
        int second = calendar.get(Calendar.SECOND); //获取秒钟;
        int hour_of_day = calendar.get(Calendar.HOUR_OF_DAY);    //第几个小时,
        int day_of_month  = calendar.get(Calendar.DAY_OF_MONTH); //这天,在一个月内是第几天.
        int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);    //这天,在一周内,是第几天.
        int day_of_year = calendar.get(Calendar.DAY_OF_YEAR);    //这天,在一年内,是第几天。
        int week_of_year = calendar.get(Calendar.WEEK_OF_YEAR);  //这周,在一年内是第几周;
        int week_of_month = calendar.get(Calendar.WEEK_OF_MONTH);//这周,在这个月是第几周;以以星为标准;
        int zone_offset = calendar.get(Calendar.ZONE_OFFSET);    //获取时区;
        int day_of_week_in_month = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);  //某月中第几周,按这个月1号算,1号起就是第1周,8号起就是第2周。以月份天数为标准 

        //设置月份05;代表日历的月份6月,因为月份从0开始。
        calendar.clear();  //注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
        calendar.set(Calendar.MONTH, 05);   //设置日历的月份是6月
        int months = calendar.get(Calendar.MONTH);
        System.out.println(months);  //输出05;(实际是6月)
        //设置日历日期为2011-07-24 09:59:50
        calendar.set(2011, 06, 24, 9, 59, 50);
        String getDate = date_format.format(calendar.getTime());
        System.out.println(getDate);   //输出2011-07-24 09:59:50;
        //设置日历为当前时间,也可以是任意date值。
        calendar.setTime(new Date()); 

    //加减(年月日。。都一样)
    calendarNew.add(Calendar.DATE, 1); //当前日期上加一天(明天)
    calendarNew.add(Calendar.DATE, -1); //当前日期上减一天(昨天)
        //比较日前大小;
    //getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位,long类型。
        if(new Date().getTime() > calendar.getTimeInMillis()){
            System.out.println("当前日期在后!");
        }else{
            System.out.println("当前日期在前!");
        }
    // 创建一个 Calendar 用于比较时间
    Calendar calendarNew = Calendar.getInstance();
    // 设定为 5 小时以前,后者大,显示 -1
    calendarNew.add(Calendar.HOUR, -5);
    System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    // 设定7小时以后,前者大,显示 1
    calendarNew.add(Calendar.HOUR, +7);
    System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    // 退回 2 小时,时间相同,显示 0
    calendarNew.add(Calendar.HOUR, -2);
    System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
时间: 2024-10-27 04:49:32

Date,Calendar,SimpleDateFormat时间操作整理的相关文章

Java常用类库之时间操作类——Date、Calendar、DateFormat、SimpleDateFormat及实例操作

学习目标 掌握Date类的使用 可以使用Calendar类取得一个完整的日期 掌握日期格式化的操作 可以使用SimpleDateFormat进行日期的格式化转换操作 编写取得日期的操作类 进一步掌握Calendar类的使用 进一步掌握SimpleDateFormat类的使用 Date类是一个较为常用的类,但是其操作的日期格式会有一些不符合个人要求,而如果想要进一步取得一些自己需要的时间,则可以使用Calendar类. Date类 在java.util包中定义了Date类,Date类本身使用非常简

使用 Date 和 SimpleDateFormat 类表示时间、Calendar类和Math类

一. Date 和 SimpleDateFormat类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下: 其中, Wed 代表 Wednesday (星期三), Jun 代表 June (六月), 11 代表 11 号, CST 代表

Java Calendar 类的时间操作

Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java 算法(24) 版权声明:本文为博主原创文章,未经博主允许不得转载. JavaCalendar 类时间操作,这也许是创建日历和管理最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/article/details/9

Java 中Calendar、Date、SimpleDateFormat学习总结

在之前的项目中,经常会遇到Calendar,Date的一些操作时间的类,并且总会遇到时间日期之间的格式转化问题,虽然做完了但是总是忘记,记不清楚,每次还都要查找资料.今天总结一下,加深印象. Calendar Calendar是java.util 包下面的一个抽象类,它为特定瞬间与一组诸如YEAR.MONTH.DAY_OF_MONTH.HOUR等日历字段之间的转换提供了一些方法,并未操作日历字段(例如获得下星期的日期)提供了一些方法.瞬间值可用毫秒值来表示,它是距格林威治标准时间 1970 年1

Java Calendar 类的时间操作.RP

JavaCalendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/article/details/9630893 注意事项: Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示. 而 Calendar.DAY_OF_WEEK 定义和值如下: Calendar.SUNDAY = 1 Calendar.MONDAY = 2

基础笔记4(包装类,时间date. calendar

1.包装类 基本类型和对象. 编译器会对基本类型和包装类进行自动拆箱,装箱处理 Interger  i=5; int i=new Interger(4); 一个缓存问题:以便提高效率 integer i=1345; integer i2=1234; i==i2; //flase i.equals(i2); //ture integer i3=13; integer i4=13; i3==i4; //true i3.equals(i4); //true 虚拟机对于[-128,127]之间的数会当作

I学霸官方免费教程二十三:Java常用类之日期类 Date类 SimpleDateFormat类 Calendar类

Date 类 创建对象时,默认获取系统当前时间 SimpleDateFormat类 用来格式化日期的:创建对象是可以传入格式:new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");主要方法format(Date) Calendar类 可以使用SimpleDateFormat类中的getCalendar()方法获取对象.常用方法:get(int); 常用属性:YEAR MONTH... 实例: package common_class; import j

C#/JavaScript/SqlServer 对日期时间的操作整理汇总

前言:针对C#/JavaScript/SqlServer常用的对日期时间的操作函数抽时间做了一个整理,网络上有许多,但是许多都不全,这些都是时间日期常用的一些操作! 一.C# 常用日期时间操作 //获取日期+时间DateTime.Now.ToString();            // 2008-9-4 20:02:10DateTime.Now.ToLocalTime().ToString();        // 2008-9-4 20:12:12DateTime.Now.ToString(

Java - Calendar Date DateUtils SimpleDateFormat

1 import java.text.DateFormat; 2 import java.text.ParseException; 3 import java.text.SimpleDateFormat; 4 import java.util.Calendar; 5 import java.util.Date; 6 7 import org.apache.commons.lang.time.DateUtils; 8 9 public class Test { 10 11 public stati