Calendar类使用_calendar.hour_of_day-程序员宅基地

技术标签: java  日期  Calendar  Java日期处理  

在这里插入图片描述

Calendar类的成员方法

使用默认时区和区域设置获取日历。通过该方法生成Calendar对象。如下所示:Calendar cr=Calendar.getInstance();

项目 调用方法
设置日历的年、月、日、时、分、秒 public void set(int year,int month,int date,int hourofday,int minute,int second)
返回给定日历字段的值。所谓字段就是年、月、日等等 public int get(int field)
使用给定的Date设置此日历的时间。Date------Calendar public void setTime(Date date)
返回一个Date表示此日历的时间。Calendar-----Date public Date getTime()
按照日历的规则,给指定字段添加或减少时间量。 abstract void add(int field,int amount)
以毫秒为单位返回该日历的时间值。 public long getTimeInMillies()

时间单位字段:

时间字段 含义
YEAR
MONTH
DATE
DAY_OF_MONTH 日(跟上面一样)
HOUR_OF_DAY 时
MINUTE
SECOND/MILLISECOND 秒/毫秒
DAY_OF_WEEK 周几
DAY_OF_WEEK_IN_MONTH 某月中第几周
YWEEK_OF_MONTH 日历式的第几周
DAY_OF_YEAR 一年的第多少天
WEEK_OF_YEAR 一年的第多少周
AM_PM 返回1则表示是下午,返回0表示上午
注意:month是从0开始的,而月份是从1开始的,所以month需要加1
(所以在获取系统当前月的时候你需要得到month后加1 但是你要是掉set方法设置想要日期的时候month的值要减去1 或者得到month后不采取加1操作)
注意:DAY_OF_WEEK
//获取周几(返回1也就是我们所谓的星期天,返回7是星期六)
import java.util.Calendar;

public class Test {
    
    public static void main(String[] args) {
    
        // 其日历字段已由当前日期和时间初始化:
        Calendar rightNow = Calendar.getInstance(); // 子类对象
        rightNow.set(2021,9,16,14,33);//这里可设置想要年份的信息(注意月份减去1 此日期含义:2021年10月16日14时33分)
        // 获取年
        int year = rightNow.get(Calendar.YEAR);
        // 获取月
        int month = rightNow.get(Calendar.MONTH);
        // 获取日
        int date = rightNow.get(Calendar.DATE);
        //获取几点
        int hour = rightNow.get(Calendar.HOUR_OF_DAY);
        //获取几分
        int min = rightNow.get(Calendar.MINUTE);
        //获取秒数
        int second = rightNow.get(Calendar.SECOND);
        //获取上午下午
        int ap = rightNow.get(Calendar.AM_PM);
        if (ap== 1) {
    
            System.out.println("下午");
        }else {
    
            System.out.println("上午");
        }
        System.out.println(year + "年" + (month + 1) + "月" + date + "日" + hour + "时" + min + "分" + second + "秒");
        System.out.println(rightNow.get(Calendar.WEEK_OF_YEAR));
         //按照日历的规则,给指定字段添加或减少时间量。
	    rightNow.add(Calendar.YEAR, 5);//往后加5年
        rightNow.add(Calendar.DATE, -10);//日期往前退10天
        int year1 = rightNow.get(Calendar.YEAR);
        int date1 = rightNow.get(Calendar.DATE);
        System.out.println(year1 + "年" + (month + 1) + "月" + date1 + "日" + hour + "时");
    }
    //返回的是周几,而不是一周的第几天(返回1也就是我们所谓的星期天,返回7是星期六)
	 System.out.println("======"+rightNow.get(Calendar.DAY_OF_WEEK));
	  //这个月的第几周[1-7]、[8-14]、[15-21]、[22-28]、[29-30/31] 
	  //7的倍数	
	   System.out.println("======"+rightNow.get(Calendar.DAY_OF_WEEK_IN_MONTH));
       
}

在这里插入图片描述
在这里插入图片描述

正确返回想要日期当天星期几?

import java.util.Calendar;

public class Data {
    
    public static void main(String[] args) {
    
        Calendar now = Calendar.getInstance();//一周第一天是否为星期天
        //下面可以自定义日期
        now.set(2021,7,29);//注意月份减去1  含义 2021年8月29日
        boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);//获取周几
        int weekDay = now.get(Calendar.DAY_OF_WEEK);//若一周第一天为星期天,则-1
        if (isFirstSunday) {
    
            weekDay = weekDay - 1;
            if (weekDay == 0) {
    
                weekDay = 7;
            }
        }
        System.out.println(weekDay);
    }
}

获取当前时间的上月初上月末日期

    public static void main(String[] args) {
    
        SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        //===================月初
        Calendar c = Calendar.getInstance();
        c.add(Calendar.MONTH, -1);
       // c.set(Calendar.MONTH, 5 - 1);
        //设置为1号,当前日期既为本月第一天
        c.set(Calendar.DAY_OF_MONTH, 1);
        //将小时至0
        c.set(Calendar.HOUR_OF_DAY, 0);
        //将分钟至0
        c.set(Calendar.MINUTE, 0);
        //将秒至0
        c.set(Calendar.SECOND, 0);
        //将毫秒至0
        c.set(Calendar.MILLISECOND, 0);
        String first = format0.format(c.getTime());
        System.out.println(first);//2022-05-01 00:00:00:000
        //===================月末
        Calendar ca = Calendar.getInstance();
        ca.add(Calendar.MONTH, -1);
        //ca.set(Calendar.MONTH, 5 - 1);
        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
        //将小时至23
        ca.set(Calendar.HOUR_OF_DAY, 23);
        //将分钟至59
        ca.set(Calendar.MINUTE, 59);
        //将秒至59
        ca.set(Calendar.SECOND, 59);
        //将毫秒至999
        ca.set(Calendar.MILLISECOND, 999);
        String date12 = format0.format(ca.getTime());
        System.out.println(date12);//2022-05-31 23:59:59:999
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liu918458630/article/details/119713952

智能推荐

Source Insight4.0 不显示文件列表/工程文件目录_source insight文件列表不显示-程序员宅基地

文章浏览阅读5.2k次,点赞6次,收藏10次。软件设置里面勾选上Project File List就行了。_source insight文件列表不显示

SS928官方vo例子适配mipi屏-程序员宅基地

文章浏览阅读1k次。最近新购一款SS928的开发板,但其外部只提供了HDMI显示接口,官方未适配MIPI屏,考虑到调试的时候每次找HDMI显示器不方便,就自己画了个板子匹配了一款mipi的显示屏,屏幕为:8.0 inch IPS MIPI 800x1280 AML08021016-31D Amelin Electronic Technology。一般由厂家提供,主要通过mipi命令模式向屏幕写入寄存器配置信息,我这个屏幕参数组成为{地址,长度,数据1,…01 EB-SS928-DC-393型开发板用户快速入门.pdf。_ss928

IDEA maven命令报错:打包程序包com.sun.istack.internal不存在_com.sun.istack.internal.notnull-程序员宅基地

文章浏览阅读1.1w次,点赞10次,收藏6次。错误信息:错误原因:因使用到 @NotNull注解导致,引入相应的包即可解决方案:pom文件中加入如下配置<build> <plugins> <plugin&_com.sun.istack.internal.notnull

XenServer添加硬盘并创建本地存储库_xenserver 添加本地存储-程序员宅基地

文章浏览阅读1.5k次。在服务器添加物理硬盘。连接服务器,使用lsblk命令查看添加的硬盘格式化硬盘mkfs.ext4 /dev/sdcll /dev/disk/by-path 查看需要挂载的硬盘,sdc对应的就是刚添加的硬盘挂载硬盘device-config:device填上一步查看到的磁盘分区id,name-label是名字,自定义填写就行。xe sr-create type=lvm conten..._xenserver 添加本地存储

JavaScript Class类详解_js class-程序员宅基地

文章浏览阅读1.8w次,点赞36次,收藏148次。ECMAScript 6 提供了更接近传统语言的写法,新引入的class关键字具有正式定义类的能力。类(class)是ECMAScript中新的基础性语法糖结构,虽然ECMAScript 6类表面上看起来可以支持正式的面向对象编程,但实际上它背后使用的仍然是原型和构造函数的概念,让对象原型的写法更加清晰、更像面向对象编程的语法。_js class

mysql中的一些锁问题_trx_operation_state: fetching rows-程序员宅基地

文章浏览阅读442次。参考文档:http://blog.csdn.net/zyz511919766/article/details/50147283http://narcissusoyf.iteye.com/blog/1637309mysql version: mysql.5.6.34| tx_isolation | READ-COMMITTED || binlog_format _trx_operation_state: fetching rows

随便推点

STM32+AIR800关于温湿度采集上传阿里云以及进行云端下发指令简单的控制_基于stm32温湿度上传云平台-程序员宅基地

文章浏览阅读8.7k次,点赞6次,收藏105次。一、主要功能实现:1、STM32采集温湿度上传至阿里云,进行云端显示2、云端下发指令控制STM32的LED亮灭(直接控制STM32(A)的LED亮灭,以及设置定时时间自动打开和关闭LED)3、云端下发指令通过NRF24L01间接控制第二个STM32(B)的LED亮灭二、 各模块功能划分:1、阿里云物联网云平台:(1)进行云端显示温湿度,给云下设备下达指令2、AIR800:(1)成功..._基于stm32温湿度上传云平台

QT c++ 中使用PostMessage/SendMessage_qt sendmessage-程序员宅基地

文章浏览阅读2.6w次,点赞3次,收藏39次。 PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。并且不会等待响应的线程处理消息,而是直接返回。(简单的理解就是异步)。而SendMessage作用一样,但是会等待结果返回(同步)我们先来看PostMessage函数的原型:BOOL WINAPI PostMessage(HWND hWnd, UINT Msg, W..._qt sendmessage

初始对准及组合导航技术_双位置对准-程序员宅基地

文章浏览阅读9.5k次,点赞22次,收藏129次。一、对准是确定坐标系的过程1、初始对准比如说:初始对准就是确定的过程,通过重力加速度和地球自转角速度,其中,天向通过重力加速度确定,水平面的东北向通过地球自转角速度的分量确定。2、坐标系对准比如说,地面车辆中,IMU任意放置,如何确定;可以看出,对准就是确定坐标系的过程。3、矢量定姿<1>双矢量定姿矢量和不共线,因此,、和不共面,其三个矢量构成的矩阵可逆。由于上述矢量构建的姿态矩阵未必满足正交化要求,因此,预先对解算的矢量进行正交及单位化处理。即上述._双位置对准

QT——手动编译qt源代码过程_qt怎么编译-程序员宅基地

文章浏览阅读3.5k次。1.生成解决方案终端进入需要手动编译的项目所在的目录在该目录下执行qmake -project命令,注意qmake前面的路径是qmake的安装路径:/Qt5.11.3/5.11.3/gcc_64/bin/qmake -project该文件夹下会生成.pro文件注意:需要在该文件中添加项目执行过程中需要的模块,笔者的文件中添加了 QT += widgets2.生成Makefile文件..._qt怎么编译

VUE——MVVM框架理解_vue框架是mvvm-程序员宅基地

文章浏览阅读315次。MVVM工作原理MVVM框架理解MVVM的实现原理响应式:模板解析:如何将模板渲染为html小白一枚,正好最近Vue越来越火热,Github上的Star数已经超过了React。而其背后蕴含的MVVM框架思想也一直跟React的组件化开发思想并驾齐驱,在这里也是本着兼收并蓄的思想,多了解一种开发模式。因此通过一些学习资料,写一些自己对MVVM开发思想的理解。废话不多说,咱们进入正题。MVVM框..._vue框架是mvvm

内存修改器对游戏的危害_内存挂容易被检测吗-程序员宅基地

文章浏览阅读3.9k次,点赞4次,收藏10次。内存修改器是游戏外挂里面的一个大类,通过修改器可实现很多魔幻且具有很大破坏性的功能。 下面几张图是使用修改器实现的游戏破解效果。 内存修改器实现的透视功能 ..._内存挂容易被检测吗

推荐文章

热门文章

相关标签