Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java calendar 设置小时_Java Calendar类的时间操作[通俗易懂]

java calendar 设置小时_Java Calendar类的时间操作[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-12 08:39:44
发布于 2022-08-12 08:39:44
1.6K0
举报

大家好,又见面了,我是你们的朋友全栈君。

Java Calendar 类时间操作,这也许是创建日历和管理最简单的一个方案,示范代码很简单,演示了获取时间,日期时间的累加和累减,以及比较。

注意事项:

Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

而 Calendar.DAY_OF_WEEK 定义和值如下:

Calendar.SUNDAY = 1

Calendar.MONDAY = 2

Calendar.TUESDAY = 3

Calendar.WEDNESDAY = 4

Calendar.THURSDAY = 5

Calendar.FRIDAY = 6

Calendar.SATURDAY = 7

SimpleDateFormat 的格式定义

Java Calendar 演示代码如下:

package demo;

import java.util.Date;

import java.text.SimpleDateFormat;

import java.text.DateFormat;

import java.text.ParseException;

import java.util.Calendar;

public class Test

{

public Test()

{

}

public static void main(String[] args)

{

// 字符串转换日期格式

// DateFormat fmtDateTime = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

// 接收传入参数

// String strDate = args[1];

// 得到日期格式对象

// Date date = fmtDateTime.parse(strDate);

// 完整显示今天日期时间

String str = (new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”)).format(new Date());

System.out.println(str);

// 创建 Calendar 对象

Calendar calendar = Calendar.getInstance();

try

{

// 对 calendar 设置时间的方法

// 设置传入的时间格式

SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-M-d H:m:s”);

// 指定一个日期

Date date = dateFormat.parse(“2013-6-1 13:24:16”);

// 对 calendar 设置为 date 所定的日期

calendar.setTime(date);

// 按特定格式显示刚设置的时间

str = (new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”)).format(calendar.getTime());

System.out.println(str);

}

catch (ParseException e)

{

e.printStackTrace();

}

// 或者另一種設置 calendar 方式

// 分別爲 year, month, date, hourOfDay, minute, second

calendar = Calendar.getInstance();

calendar.set(2013, 1, 2, 17, 35, 44);

str = (new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”)).format(calendar.getTime());

System.out.println(str);

// Calendar 取得当前时间的方法

// 初始化 (重置) Calendar 对象

calendar = Calendar.getInstance();

// 或者用 Date 来初始化 Calendar 对象

calendar.setTime(new Date());

// setTime 类似上面一行

// Date date = new Date();

// calendar.setTime(date);

str = (new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”)).format(calendar.getTime());

System.out.println(str);

// 显示年份

int year = calendar.get(Calendar.YEAR);

System.out.println(“year is = ” + String.valueOf(year));

// 显示月份 (从0开始, 实际显示要加一)

int month = calendar.get(Calendar.MONTH);

System.out.println(“nth is = ” + (month + 1));

// 本周几

int week = calendar.get(Calendar.DAY_OF_WEEK);

System.out.println(“week is = ” + week);

// 今年的第 N 天

int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);

System.out.println(“DAY_OF_YEAR is = ” + DAY_OF_YEAR);

// 本月第 N 天

int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(“DAY_OF_MONTH = ” + String.valueOf(DAY_OF_MONTH));

// 3小时以后

calendar.add(Calendar.HOUR_OF_DAY, 3);

int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);

System.out.println(“HOUR_OF_DAY + 3 = ” + HOUR_OF_DAY);

// 当前分钟数

int MINUTE = calendar.get(Calendar.MINUTE);

System.out.println(“MINUTE = ” + MINUTE);

// 15 分钟以后

calendar.add(Calendar.MINUTE, 15);

MINUTE = calendar.get(Calendar.MINUTE);

System.out.println(“MINUTE + 15 = ” + MINUTE);

// 30分钟前

calendar.add(Calendar.MINUTE, -30);

MINUTE = calendar.get(Calendar.MINUTE);

System.out.println(“MINUTE – 30 = ” + MINUTE);

// 格式化显示

str = (new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SS”)).format(calendar.getTime());

System.out.println(str);

// 重置 Calendar 显示当前时间

calendar.setTime(new Date());

str = (new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SS”)).format(calendar.getTime());

System.out.println(str);

// 创建一个 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));

}

}

要计算时间差,可用 Calendar.getTimeInMillis() 取得两个时间的微秒级的时间差,再加以换算即可,比如获得相差天数,代码如下:

// 得微秒级时间差

long val = calendarEnd.getTimeInMillis() – calendarBegin.getTimeInMillis();

// 换算后得到天数

long day = val / (1000 * 60 * 60 * 24);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132098.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Calendar类_java calendar
Calendar是java util包下的一个工具类,提供了很方便的不同日期格式的处理。啥也不说了,直接撸代码:
全栈程序员站长
2022/11/09
9910
LocalDateTime、Date时间工具类
参考:Date、LocalTime、LocalDate、LocalDate-时间操作工具类_Hatsune_Miku_的博客-CSDN博客
CBeann
2023/12/25
2410
Java Date 和 Calendar 实例
当前日期:  2012-03-07 2012-03-07 12:30:11 2012-3-7 12:30:11.101 计算周:  -3 3/5/12 12:30 PM 3/10/12 12:30 PM 3/12/12 12:30 PM 3/3/12 12:30 PM 计算月:  2012-03-01 2012-03-31 2012-02-01 2012-02-29 2012-04-01 2012-04-30 计算年:  2012-01-01 2012-12-31 2011-01-01 2011-12-31 2013-01-01 2013-12-31 366 in 2012 计算季度:  2012-3-7 in [ 2012-1 : 2012-3 ] 31 in [ 2012-3-7 ] true 日期格式转换与计算:  Wed Jun 20 00:00:00 CST 2012 Wednesday 2012-06-02 -> 2012-06-12间隔天数:10
阳光岛主
2019/02/19
3.1K0
java实用类(四)-Date 和 Calendar
创建日历类对象,不是new出来的,而是通过日历类自带的静态方法getInstance,获取;
化羽羽
2022/10/28
4610
java小工具util系列1:日期和字符串转换工具
https://blog.csdn.net/a924382407/article/details/121955349
刘大猫
2024/11/28
1060
Java时间操作代码实现
OK,本文的主题是java中常用的时间操作,在平时开发过程中经常会使用到这些时间操作类,但是大部分使用都是其他工具包提供的类或者就那么几个常用的方法,对其中的方法也都并没有深入学习。所以这篇博客就记录一下我对jdk8中有关常用的时间操作的学习,在此过程中会用到jdk文档。
beifengtz
2019/06/03
6330
日历时间格式Date与Calender
一、Date 1.1.概述 获取当前系统时间 大部分构造方法已经过时 构造方法 Date(); 创建一个Date,对应当前时间,精度在毫秒值 Date(long date); 根据时间戳毫秒数,创建对应的Date对象,时间戳是从1970-01-01 00:00:00 GMT tips: 中国采用的东八区时间 1970-01-01 08:00:00 常用方法: long getTime(); 通过Date类对象获取对应当前时间的毫秒数 System.currentTi
2020/10/23
1.1K0
java中各种时间格式的转化(包含java多数情况下时间的转换)
如果你想设置一个时间从一天的开始到一天的结束,那么你先要设置日期的格式为yyyy-MM-dd,然后在设置一个日期的格式为yyyy-MM-dd HH:mm:ss,然后在之前的日期格式上加上00:00:00-23:59:59转换成该日期格式,就可以设置区间为1天了。代码如下 如果时间为年月日,可以增加时分秒 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat
gfu
2019/08/28
2.1K0
java时间工具类[通俗易懂]
类型的日期工具类还有很多,比如Hutool的日期工具类也很不错 Hutool日期工具文档 maven依赖
全栈程序员站长
2022/09/12
6840
Java日期格式化
文章目录 1. 日期格式化 1.1. 前言 1.2. Date 1.2.1. 构造方法 1.2.2. 常用的方法 1.2.3. 实例 1.3. SimpleDateFormat 1.3.1. 构造方法 1.3.2. 常用的方法 1.3.3. 常用的日期格式化的模板 1.3.4. 实例 1.4. Calendar 1.4.1. 创建对象 1.4.2. 常用方法 1.4.3. 实例 日期格式化 前言 更多文章请看本人博客https://chenjiabing666.github.io/ 版权所有,如需转
爱撒谎的男孩
2019/12/31
2.7K0
Java 相关时间工具类
package com.cavytech.wear2.util; import android.text.TextUtils; import android.text.format.Time; import android.util.Log; import com.cavytech.wear2.entity.BandSleepStepBean; import com.cavytech.wear2.entity.GetSleepBean; import java.text.DateFormat;
先知先觉
2019/01/21
1.5K0
java中经常使用的日期格式化(全)「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115600.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
1.9K0
Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前...)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { private static final long ONE_MINUTE = 60; private static final long ONE_HOUR = 3600; private static
用户7999227
2021/09/19
2.3K0
JAVA 常用日期工具类:DateUtil的基本常见方法
在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数,或者对日期类型进行格式化,等等,等等,总之日期的使用多种多样,但万变不离其宗,今天我就整理了部分常见的java对Date的操作方法,供大家使用。
一诺千金
2020/04/30
13.9K0
java 转为Calendar_java Calendar和Date()的转化
public static void main(String args[]){
全栈程序员站长
2022/06/26
8910
java时间相关类详解(Date类,Calendar类,LocalDate类,时间格式化,时间戳)
常用时间类有Date,Calendar,LocalDate,SimpleDateFormat,时间戳等等。
smallmayi
2022/05/12
2.1K0
java时间相关类详解(Date类,Calendar类,LocalDate类,时间格式化,时间戳)
java calendar和date_java calendar获取年月日
java中的Calendar类为什么起个名字就叫做日历呢?因为这个类可以让我们像看日历一样得到这个时间的所有属性,你还在为不知道2014年5月7日是周几而苦恼吗?你还在为2005年8月14日是8月的第几周而发愁吗?快来试一试Calendar吧。
全栈程序员站长
2022/11/09
1.4K0
java对时间的操作,提供给你工具类,直接调用方法就可以操作时间了
-创建 SimpleDateFormat 对象时必须指定转换格式。 -转换格式区分大小写,yyyy 代表年份,MM 代表月份,dd 代表日期,HH 代表 24 进制的小时,hh 代表 12 进制的小时,mm 代表分钟,ss 代表秒。
一写代码就开心
2020/11/20
2.9K0
java对时间的操作,提供给你工具类,直接调用方法就可以操作时间了
java最全最常用的日期工具类(随时补充)
@Slf4j public final class DateUtils { private DateUtils() { } private static final String FORMAT_YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss"; public static final String FORMAT_YYYY_MM_DD = "yyyy-MM-dd"; public static final String FORMAT_
疯狂的KK
2023/04/10
1.2K0
Java常见日期格式及日期的计算工具类
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List;
一头小山猪
2020/06/15
4.3K0
推荐阅读
相关推荐
Calendar类_java calendar
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文