8hutool实战:ChineseDate(农历日期工具类)
技术活,该赏
关注+一键三连(点赞,评论,收藏)再看,养成好习惯
hutool实战(带你掌握里面的各种工具)目录
万字博文教你搞懂java源码的日期和时间相关用法
用途:农历日期工具类
使用场景
农历日期工具,最大支持到2055年,支持:
- 通过公历日期构造获取对应农历
- 通过农历日期直接构造
项目引用
此博文的依据:hutool-5.6.5版本源码
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>5.6.5</version></dependency>
方法摘要
方法 | 描述 |
---|---|
cn.hutool.core.date.ChineseDate.getChineseYear() |
获得农历年份
|
cn.hutool.core.date.ChineseDate.getGregorianYear() |
获取公历的年
|
cn.hutool.core.date.ChineseDate.getMonth() |
获取农历的月,从1开始计数
|
cn.hutool.core.date.ChineseDate.getGregorianMonthBase1() |
获取公历的月,从1开始计数
|
cn.hutool.core.date.ChineseDate.getGregorianMonth() |
获取公历的月,从0开始计数
|
cn.hutool.core.date.ChineseDate.isLeapMonth() |
当前农历月份是否为闰月
|
cn.hutool.core.date.ChineseDate.getChineseMonth() |
获得农历月份(中文,例如二月,十二月,或者润一月)
|
cn.hutool.core.date.ChineseDate.getChineseMonthName() |
获得农历月称呼(中文,例如二月,腊月,或者润正月)
|
cn.hutool.core.date.ChineseDate.getDay() |
获取农历的日,从1开始计数
|
cn.hutool.core.date.ChineseDate.getGregorianDay() |
获取公历的日
|
cn.hutool.core.date.ChineseDate.getChineseDay() |
获得农历日
|
cn.hutool.core.date.ChineseDate.getGregorianDate() |
获取公历的Date
|
cn.hutool.core.date.ChineseDate.getGregorianCalendar() |
获取公历的Calendar
|
cn.hutool.core.date.ChineseDate.getFestivals() |
获得节日
|
cn.hutool.core.date.ChineseDate.getChineseZodiac() |
获得年份生肖
|
cn.hutool.core.date.ChineseDate.getCyclical() |
获得年的天干地支
|
cn.hutool.core.date.ChineseDate.getCyclicalYMD() |
干支纪年信息
|
cn.hutool.core.date.ChineseDate.getTerm() |
获得节气
|
cn.hutool.core.date.ChineseDate.toStringNormal() |
转换为标准的日期格式来表示农历日期,例如2020-01-13
|
cn.hutool.core.date.ChineseDate.toString() |
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseYear()
方法描述
获得农历年份
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
返回农历年份
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("2020-01-25 00:00:00", date.getGregorianDate().toString());Assert.assertEquals(2020, date.getChineseYear());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianYear()
方法描述
获取公历的年
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|
返回值:
公历年
参考案例:
//获取公历的年ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals(2021, date.getGregorianYear());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getMonth()
方法描述
获取农历的月,从1开始计数
支持版本及以上
5.2.4
参数描述:
参数名 | 描述 |
---|
返回值:
农历的月
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals(1, date.getMonth());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianMonthBase1()
方法描述
获取公历的月,从1开始计数
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|
返回值:
公历月
参考案例:
//获取公历的月,从1开始计数ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals(5, date.getGregorianMonthBase1());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianMonth()
方法描述
获取公历的月,从0开始计数
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|
返回值:
公历月
参考案例:
//获取公历的月,从0开始计数ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals(4, date.getGregorianMonth());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.isLeapMonth()
方法描述
当前农历月份是否为闰月
支持版本及以上
5.4.2
参数描述:
参数名 | 描述 |
---|
返回值:
是否为闰月
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-05-19"));Assert.assertEquals(true, date.isLeapMonth());date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals(false, date.isLeapMonth());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseMonth()
方法描述
获得农历月份(中文,例如二月,十二月,或者润一月)
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
返回农历月份
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("一月", date.getChineseMonth());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseMonthName()
方法描述
获得农历月称呼(中文,例如二月,腊月,或者润正月)
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
返回农历月份称呼
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("正月", date.getChineseMonthName());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getDay()
方法描述
获取农历的日,从1开始计数
支持版本及以上
5.2.4
参数描述:
参数名 | 描述 |
---|
返回值:
农历的日,从1开始计数
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals(1, date.getDay());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianDay()
方法描述
获取公历的日
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|
返回值:
公历日
参考案例:
//获取公历的日ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals(19, date.getGregorianDay());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseDay()
方法描述
获得农历日
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
获得农历日
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("初一", date.getChineseDay());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianDate()
方法描述
获取公历的Date
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|
返回值:
公历Date
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("2020-01-25 00:00:00", date.getGregorianDate().toString());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getGregorianCalendar()
方法描述
获取公历的Calendar
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|
返回值:
公历Calendar
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Calendar calendar = date.getGregorianCalendar();Assert.assertEquals("2021-05-19", DateUtil.format(DateUtil.date(calendar),"yyyy-MM-dd"));
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getFestivals()
方法描述
获得节日
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
获得农历节日
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("春节", date.getFestivals());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getChineseZodiac()
方法描述
获得年份生肖
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
获得年份生肖
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("鼠", date.getChineseZodiac());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getCyclical()
方法描述
获得年的天干地支
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
获得天干地支
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("庚子", date.getCyclical());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getCyclicalYMD()
方法描述
干支纪年信息
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
获得天干地支的年月日信息
参考案例:
//通过公历构建ChineseDate chineseDate = new ChineseDate(DateUtil.parseDate("1993-01-06"));String cyclicalYMD = chineseDate.getCyclicalYMD();Assert.assertEquals("壬申年癸丑月丁亥日",cyclicalYMD);//通过农历构建ChineseDate chineseDate = new ChineseDate(1992,12,14);String cyclicalYMD = chineseDate.getCyclicalYMD();Assert.assertEquals("壬申年癸丑月丁亥日",cyclicalYMD);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.getTerm()
方法描述
获得节气
支持版本及以上
5.6.3
参数描述:
参数名 | 描述 |
---|
返回值:
获得节气
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals("", date.getTerm());date = new ChineseDate(DateUtil.parseDate("2021-05-21"));Assert.assertEquals("小满", date.getTerm());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.toStringNormal()
方法描述
转换为标准的日期格式来表示农历日期,例如2020-01-13
支持版本及以上
5.2.4
参数描述:
参数名 | 描述 |
---|
返回值:
标准的日期格式
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2020-01-25"));Assert.assertEquals("2019-12-30", date.toStringNormal());
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.date.ChineseDate.toString()
方法描述
支持版本及以上
参数描述:
参数名 | 描述 |
---|
返回值:
参考案例:
ChineseDate date = new ChineseDate(DateUtil.parseDate("2021-05-19"));Assert.assertEquals("辛丑牛年 四月初八", date.toString());
源码解析:
链接:待补充
8hutool实战:ChineseDate(农历日期工具类)相关推荐
- 天干地支 工具类java_java日期工具类DateUtil-续二
该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...
- java 星期几、得周一、得周日、上周、下周、相差、日期工具类
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. import org.apache.commons.lang3.StringUtils;import ...
- java日期工具类DateUtil
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...
- 自定义日期工具类 java 1614698552
自定义日期工具类 java 1614698552 需求 思路 演练 日期转字符串的方法 字符串转日期方法 测试类 更多尝试 测试另一个方法
- Date日期工具类和Calendar日历类实例及其相互转换
(一)日期工具类 该类的构造函数如下: (1)Date(): 分配对象并对其进行初始化,以便它表示分配对象的时间,以最接近的毫秒为单位. (2)Date(long date): 分配一个对象并 ...
- java dateutils_Java中简单日期工具类DateUtils的实现
最近工作时经常处理日期,想起以前sql server中datediff,dateadd 等方法非常好用,于是想在java中实现类以的功能,而且提高精度,所以初步有了以下代码: package com. ...
- java中常用的日期工具类
java中常用的日期工具类 日期相关的类: package net.yto.ofclacct.core.util;import java.text.ParseException; import jav ...
- java日期工具类(转载)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- 根据当期日期计算,农历日期的类
根据当期日期计算,农历日期的类 public class Lunar {private int year; private int month; private int day; private bo ...
最新文章
- egg 自学入门demo分享
- Lync 小技巧-46-intranet-共享桌面-internet-网络问题
- SQL函数--- SQL FIRST()
- 三大缓存框架ehcache、memcache和redis的介绍
- 没有互联网,我不会写程序了
- java兔子问题编程思路详解_Java算法之“兔子问题”
- 从趣味游戏到排序算法(2)
- c语言猜字游戏中期报告,c语言小程序:编写猜字游戏
- FreeRTOS源码分析与应用开发06:软件定时器
- 南大首届AI本科课程曝光:周志华为第一批00后,准备了大剂量烧脑数学
- oracle归档日志满了的处理方法
- python变量使用前必须先声明_Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。_学小易找答案...
- 2-15 复合类型概述
- 塔尔寺景点门票销售管理系统
- 开源接口测试平台BTest
- 别细看|请收藏|堆垛机故障大全及解决办法
- 2011年国庆2天厦门到平潭岛湄洲岛自驾游
- enumerate使用方法
- gis平移至所选要素_ArcGIS中如何实现矢量数据平移
- 从代理模式再出发!Proxy.newProxyInstance的秘密
热门文章
- 2018年春计算机教学计划,2018年教学计划
- 安卓系统刷机怎么刷机_手机刷机怎么刷
- 码农翻身之大话编程篇:9 CPU阿甘
- P3480 [POI2009]KAM-Pebbles
- C语言中vu16什么意思,15.stm32 数据类型的定义(常用的U8,U16,U32到底代表什么)
- 计算机网络课程改革,计算机网络专业课程改革的探究
- 最新Linux内核本地DoS漏洞CVE-2017-8064 4.10.12之前版本均受影响 还有一个CVE-2017-7979...
- CWPP与EDR的定义与区别
- 深入理解Conditional Diffusion Models:解读《On Conditioning the Input Noise for Controlled Image Generation》
- java IO流(一)文件, InputStream,OutputStream,Reader,Writer