Java中日期时间类Calendar

一,Calendar类

public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>

Calendar类是一个抽象类(Calendar类不能直接创建实例),它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下个星期的日期)提供了一些方法;瞬间可用毫秒值来表示,它是距历元(格林威治时间1970年1月1日的00:00:00.000)的偏移量

Calendar类如果要创建实例,必须通过getInstance方法构造Calendar的子类对象

二,常用方法

1,Calendar.getInstance();

该方法返回Calendar类的子类对象;为什么说『返回Calendar类的子类对象』?首先Calendar类是一个抽象类,所以不存在所谓的Calendar类的实例,其次在地球上有很多不同的时区,不同的时区就要对应不同的Calendar类的的子类(每个国家都有自己的一套日历算法,比如西方的国家的第一个星期大部分为星期日,而中国则为星期一,等等)

2,get()

该方法接受Calendar类的YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE、SECOND等日历字段

public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
     calender.set(2019,0,22);
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH));//默认从0开始计数,通常+1
        System.out.println(calendar.get(Calendar.DATE));//等同于DAY_OF_MONTH
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
    }

3,getTime()

向Date类转换

public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();

        Date time = calendar.getTime();
        System.out.println(time);
        System.out.println(time.getTime());
        time.setTime(1265871327628L);
        System.out.println(time);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
        String format = simpleDateFormat.format(time);
        System.out.println(format);
    }

三,LocalDateTime类

Java的Date,Calendar类型使用起来并不是很方便,而且Date类(据说)有着线程不安全等诸多弊端。同时若不进行封装,会在每次使用时特别麻烦。于是Java8推出了线程安全、简易、高可靠的时间包。并且数据库中也支持LocalDateTime类型,在数据存储时候使时间变得简单。Java8这次新推出的包括三个相关的时间类型:LocalDateTime年月日十分秒;LocalDate日期;LocalTime时间;三个包的方法都差不多。

public class LocalDateTimeTest {

    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
        int month = now.getMonthValue();
        System.out.println(month);
        LocalDateTime localDateTime = LocalDateTime.of(2008, 12, 31, 22, 21, 22);
        System.out.println(localDateTime);

        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
        System.out.println(zonedDateTime);

        String format = now.format(DateTimeFormatter.ofPattern("YYYY-MM-dd"));
        System.out.println(format);

    }
}

原文地址:https://www.cnblogs.com/noperx/p/11361212.html

时间: 2024-10-11 12:07:45

Java中日期时间类Calendar的相关文章

Java中六大时间类的使用和区别

关于java中六个时间类的使用和区别 java.util.Date java.sql.Date  java.sql.Time  java.sql.Timestamp java.text.SimpleDateFormat java.util.Calendar java.util.Date日期格式为:年月日时分秒 java.sql.Date日期格式为:年月日java.sql.Time日期格式为:时分秒 java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) 从数据库中取出来的日期

【java】java中日期时间转化

mport java.util.*; import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDat

Java中常见时间类的使用

模拟场景针对于常用的操作API,比如流操作(字符流.字节流),时间操作等,仅仅了解概念性的定义终究是无法了解该类的用途和使用方式:这种情况在使用的时候便一脸茫然,脑海中映射不到对应的知识点.本篇博客将通过一个简单的应用场景来体会这两个类的使用. 项目开发阶段,有一个关于下单发货的需求:如果今天下午三点前进行下单,那么发货时间是明天如果今天下午三点后机型下单,那么发货时间是后天如果被确定的发货时间是周日的话,那么在此时间上再加一天为最终发货时间 牛刀小试( java 原始)整体逻辑:主函数创建下单

Java中Date时间类

Date:表示特定的瞬间,精确到毫秒. 构造方法: Date():根据当前的默认毫秒值创建日期对象 Date(long date):根据给定的毫秒值创建日期对象 public static void mian(String[] args){ //创建对象 Date d = new Date(); System.out.println("d:"+d);//d:Wed Feb 13 19:17:43 CST 2019 //创建对象 lont time = System.currentTim

java中的时间类

//获得时间方法一 Date d = new Date(); //1. Date导入的包是 java.util.Date //2. 对于Date一旦new便获得当前时间的 //3. d -> 星期 月 日 格林威治时间 GMT+8:00:00 年 DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm:ss"); String str = sdf.format(d); //转化时间格式为我们想要的样式//获得时间方法二

Java中日期的总结

#####1.日期 日期:主要使用的是*java.util.Date* 以及*java.sql.Date* , sql中的Date是util中Date的子类,关系如下,但是如果直接转换的话会出现Cast转换错误. - java.lang.Object - java.util.Date - java.sql.Date 之间的转换可以通过如: ```javajava.util.Date utildate=new java.util.Date(System.getCurrentTime());java

Java 8 日期时间 API

Java 8 日期时间 API Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理. 在旧版的 Java 中,日期时间 API 存在诸多问题,其中有: 非线程安全 ? java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一. 设计很差 ? Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义.java.ut

Java中的时间和日期(上)

自从JDK 1.0开始,Java就提供了Date来处理时间和日期,作为老古董自然有很多东西是过时的.然后出现了Calendar来解决了很多问题,但是Calendar使用比较复杂,并且有些反人类的地方.直到Java 8的出现,它吸收了Joda-Time库的经验,使得Java处理时间和日期变得比较"人性化"了.本篇就来谈谈Java中的Date.Calendar,以及SimpleDateFormat的使用.下一篇再对比一下Java 8中的日期处理. 古老的Date 查看一下Date类的源码,

Java中的时间日期处理

程序就是输入——>处理——>输出.对数据的处理是程序员需要着重注意的地方,快速.高效的对数据进行处理时我们的追求.其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理方式进行简单的解析,为自己以后的学习做一个备忘,也为初学者做一个借鉴. 时间,英文Time:日期,英文Date:日历,英文Calendar.Java中注重语义化,也是用以上的名称对时间日期函数和相关类进行命名. 我们将以Java自带的时间日期类和其中的处理函数进行分析. 一.与时间日期有关的类. java.u