代码编织梦想

 Calendar类 优点:可以进行日期和时间的计算,支持时区设置,精                                     度可以到纳秒级别。

                         缺点:代码复杂,易出错,不够直观。

(2)Calendar类的常用方法

Calendar类是Java中用于处理日期和时间的类,它提供了一系列的方法来操作日期和时间,包括获取、设置、计算等。下面是Calendar类的一些特性和常用方法:

1. Calendar类是一个抽象类,不能直接实例化,需要通过getInstance()方法获取实例。

2. Calendar类提供了一系列常量来表示日期和时间的各个字段,如YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE、SECOND等。

3. Calendar类提供了一系列方法来获取和设置日期和时间的各个字段,如get()、set()、add()、roll()等。

4. Calendar类提供了一系列方法来进行日期和时间的计算和比较,如getTimeInMillis()、compareTo()、before()、after()等。 下面是一些常用的Calendar类方法:

1. get(int field)方法

该方法用于获取指定字段的值,返回值为整型。


import java.util.Calendar;

public class ImportWay {
    public static void main (String []args){
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;//月份从0开始,需要加1
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("当前日期:" + year + "-" + month + "-" + day);
        
    }

}

​

​

结果

当前日期:2023-3-16

2. set(int field, int value)方法

该方法用于设置指定字段的值。

import java.util.Calendar;

public class ImportWay {
    public static void main (String []args){
       Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2022);
        calendar.set(Calendar.MONTH,Calendar.JANUARY);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        System.out.println("设置后的日期:" + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH));
    }

}
设置后的日期:2022-1-1

3. add(int field, int amount)方法

该方法用于对指定字段进行加减操作

import java.util.Calendar;

public class ImportWay {
    public static void main (String []args){
       Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_MONTH, 7);
        
        System.out.println("一周后的日期:" + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + " " + calendar.get(Calendar.DAY_OF_MONTH));

    }

}

输出结果

一周后的日期:2023-3 24

4. getTime()方法

该方法用于获取当前Calendar对象所表示的日期和时间,返回值为Date类型。

import java.util.Calendar;
import java.util.Date;

public class ImportWay {
    public static void main (String []args){
       Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        System.out.println("当前时间:" + date);
        
    }

}

输出结果

当前时间:Fri Mar 17 15:31:53 CST 2023
//cst的意思在我上期作品中已经解释过了

5. setTime(Date date)方法

该方法用于设置当前Calendar对象所表示的日期和时间。

import java.util.Calendar;
import java.util.Date;

public class ImportWay {
    public static void main (String []args){
       Calendar calendar = Calendar.getInstance();
        Date date = new Date(1640995200000L);//2022年1月1日
        calendar.setTime(date);
        System.out.println("设置后的日期:" + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH));
        
    }

}

输出结果

设置后的日期:2022-1-1

6. compareTo(Calendar anotherCalendar)方法

该方法用于比较当前Calendar对象和指定Calendar对象的先后顺序,返回值为0表示相等,小于0表示当前对象在指定对象之前,大于0表示当前对象在指定对象之后

import java.util.Calendar;

public class ImportWay {
    public static void main (String []args){
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar2.add(Calendar.DAY_OF_MONTH, 1); // 比calendar1晚1天

        int result = calendar1.compareTo(calendar2);
        System.out.println("calendar1和calendar2的比较结果:" + result);
    }

}
calendar1和calendar2的比较结果:-1

可以看到,通过compareTo()方法可以比较两个Calendar对象的先后顺序。

7. equals(Object obj)方法 该方法用于判断当前Calendar对象是否等于指定对象。如果两个对象表示的日期和时间相同,则返回true,否则返回false。

import java.util.Calendar;

public class ImportWay {
    public static void main (String []args){
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar2.setTime(calendar1.getTime()); // 设置为和calendar1相同的时间

        boolean result = calendar1.equals(calendar2);
        System.out.println(calendar1.getTime());
        System.out.println("calendar1和calendar2是否相等:" + result);
    }

}
Fri Mar 17 15:42:18 CST 2023
calendar1和calendar2是否相等:true

可以看到,通过equals()方法可以判断两个Calendar对象的日期和时间是否相同。

下一期分享 Clock类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_73624019/article/details/129601371

date、dateformat、calendar之间的联系与区别_心之所向...的博客-爱代码爱编程_date和calendar的区别和联系

在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一) System.currentTimeMillis(); //得到现在时间减去基准时间的毫秒数 Date

时间工具类-爱代码爱编程

/** * Data转String * * @param date 目标时间 * @return 返回字符串 */ public static String DateToString(Date date) { return new SimpleDateFormat("yyyy

c++的类(二)构造函数-爱代码爱编程

小编学完c++给你们分享下笔记 Date() = default; //default 默认构造函数 Date() = delete; //delete 禁用构造函数 禁止拷贝 赋值运算符 delete[] a动态分配删除 explicit Date(); // 就是禁止含隐调用隐式转换 friend void print();// friend是友元 在

目标检测和分类的域适配研究简述-爱代码爱编程

1、检测 1、Progressive Domain Adaptation for Object Detection 2020年 本文们提出用中间域来弥补域之间的差距,逐步解决更容易的适应子任务。该中间域是通过对源图像进行转换来模拟目标域内的图像来实现的。为了解决领域转移问题,我们采用对抗性学习来在特性级别上对齐发行版本。此外,采用加权任务损失的方法处理

学习java的第15天SyStem类-爱代码爱编程

01. System类的概述及常用方法 概述 System类包含一些有用的类字段和方法,它不能被实例化 常用变量 public static final PrintStream err 获取一个错误输出流,将数据以错误样式输出控制台显示 public static final PrintStream out 获取一

多标签、类别不均衡分类问题-爱代码爱编程

最近老是遇到多标签分类问题🌼,加之自己对loss的理解还是不够到位 整理以下链接以作学习参考使用: 多标签分类:定义、思想和算法 主要是将多标签分类的定义,思考和一些解决办法。 🍎multilabel_categorical_crossentropy🍎损失函数 主要是介绍了两个损失函数的区别: 🍎categorical_crossentropy🍎 🍎b

Java Script 日期类的定义和常用方法的使用-爱代码爱编程

一、定义日期对象     1、说明:(1)与日期相关的运算被封装在Date类中,使用该类的方法和属性可以获取客户端操作系统的日期和时间值。     (2)要调用Date类的方法(注:Date类没有自己的属性),首先必须使用构造器创建一个Dete类的实例。 2、定义方式 (1)定义获取当前系统日期时间的对象:         var nowDate

command的用法oracle,dotConnect for Oracle入门指南(八):通过OracleCommand类使用存储过...-爱代码爱编程

dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的方法,提高工作效率,使数据库应用程序的开发更简便。 本篇文章介绍如何在OracleCommand类的帮助下,使用Dotconnect for Oracle创建和使用

【NLP】主题模型文本分类-爱代码爱编程

自然语言处理之主题模型文本分类 LDA主题模型 1.主题模型(Topic Model) 主题模型是以非监督学习的方式对文集的隐含语义结构进行聚类的统计模型。主题模型主要被用于自然语言处理中的语义分析和文本挖掘问题,例如按主题对文本进行收集、分类和降维。隐含狄利克雷分布是常见的主题模型。 2.隐含狄利克雷分布LDA(Latent Dirichlet

【NLP】Word2Vec模型文本分类-爱代码爱编程

自然语言处理之词向量模型聚类分析 Word Embedding 词嵌入向量(Word Embedding)是NLP里面一个重要的概念,我们可以利用Word Embedding一个单词固定长度向量的表示一种表示形式。Word Embedding矩阵给每个单词分配一个固定长度的向量表示,这个长度可以自行设定,这个长度相对于one hot模型的词典长度维数上

VS2019封装C++类为动态链接库DLL-爱代码爱编程

一、创建DLL 1、新建DLL项目 2、给工程添加类 在上一步的基础上,右键Dll2->添加类,命名为要封装的类名,此处为Detection类。 分别对应将类的.h和.cpp代码行复制到添加的类中; # Detection.h class Detection { public: Detection(); ~Detection();

【数据处理】:(二)文本类-爱代码爱编程

一、读取arff文件 1、使用scipy.io中arff读取文件 import pandas as pd from scipy.io import arff data,meta = arff.loadarff("../Dry_Bean_Dataset/Dry_Bean_Dataset.arff") 2、转化为DataFrame df =pd.D

17.2Java常用类之Date类-爱代码爱编程

Date Date 表示特定的瞬间,精确到毫秒。 在JDK1.1的时候就出现了。提供了许多针对时间日期操作的方法。 java.util包下的 源代码 public class Date implements java.io.Serializable, Cloneable, Comparable<Date> { /** *

java 常用api之date类的方法解析_我的猴子的博客-爱代码爱编程

Date类代表了一个特定的时间,以毫秒的精度构造方法     .public Date​()分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最接近的毫秒。      .public Date​(long date)分配一个 Date对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定

java 定义一个日期类的工具_我的猴子的博客-爱代码爱编程

需求:     .定义一个日期工具类(DateUtils)包含两个方法:把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,额案后定义一个测试类(DateDemo),用于测试工具类的方法思路:    .定义日期工具类(DateUtils)    .定义一个方法dateToString,用于把日期转换成指定格式的字符串         .返回值类型:

常用类 bigdecimal_hagong9的博客-爱代码爱编程

 BigDecimal 先来看个案例,1.0 - 0.9答案本应是0.1,但是如下图,输出的却是0.0999999998,这是因为double是近似值存储,会存在丢失的现象,在生活中,有些工作对数字的精度要求较高,所以double就不能符号要求,BigDecimal就能胜任这个任务。  BigDecimal概念和使用方法。例子 package

cto 说了,谁还在用 java calendar 类处理时间的直接开除!!_java烟雨的博客-爱代码爱编程

Java 8 已经普遍使用了,可是还在有人用 Java Calendar 处理时间和日期,不仅仅性能差,很切代码很冗余,就不能用 Java 8 提供的新 API 吗?所以 CTO 强制了,必须用 Java 8 处理日期,否则一律开除。下面是整理的 18 种处理日期的方式,可以收藏起来,一定有用。 Java处理日期、日历和时间的方式一直为社区所诟病,将 j

date类_p生不逢时的博客-爱代码爱编程

Date Date表示特定的瞬间,精确带到毫秒。Dete类中的大部分方法都已经被Calendar类中的方法所取代。 时间单位 1秒 = 1000毫秒 1毫秒 = 1000微秒 1微秒 = 1000纳秒 package com.cheng.lei; ​ import java.util.Date; ​ public class Demo0

java时间转换工具类-爱代码爱编程

/** * 获取对应毫秒转换成的天 时 分 秒 ms * * @author 刘子固 * @dete 2022.9.27 */ public class TimeDateUtils { /** * 一秒钟1000毫秒 */ private static Integer ss = 1000; /**