精华内容
下载资源
问答
  • 2020-12-23 02:16:12

    date 对象

    date 对象代表一个理想化历法中的日期(年、月和日),即当今的格列高利历向前后两个方向无限延伸。

    公元 1 年 1 月 1日是第 1 日,公元 1 年 1 月 2 日是第 2 日,依此类推。 2

    class datetime.date(year, month, day)

    所有参数都是必要的。 参数必须是在下面范围内的整数:

    MINYEAR <= year <= MAXYEAR

    1 <= month <= 12

    1 <= 日期 <= 给定年月对应的天数

    如果参数不在这些范围内,则抛出 ValueError 异常。

    其它构造器,所有的类方法:

    classmethod date.today()

    返回当前的本地日期。

    这等价于 date.fromtimestamp(time.time())。

    classmethod date.fromtimestamp(timestamp)

    返回对应于 POSIX 时间戳的当地时间,例如 time.time() 返回的就是时间戳。

    这可能引发 OverflowError,如果时间戳数值超出所在平台 C localtime() 函数的支持范围的话,并且会在 localtime() 出错时引发 OSError。 通常该数值会被限制在 1970 年至 2038 年之间。 请注意在时间戳概念包含闰秒的非 POSIX 系统上,闰秒会被 fromtimestamp() 所忽略。

    在 3.3 版更改: 引发 OverflowError 而不是 ValueError,如果时间戳数值超出所在平台 C localtime() 函数的支持范围的话,并会在 localtime() 出错时引发 OSError 而不是 ValueError。

    classmethod date.fromordinal(ordinal)

    返回对应于预期格列高利历序号的日期,其中公元 1 年 1 月 1 晶的序号为 1。

    除非 1 <= ordinal <= date.max.toordinal() 否则会引发 ValueError。对于任意日期 d,date.fromordinal(d.toordinal()) == d。

    classmethod date.fromisoformat(date_string)

    返回一个对应于以 YYYY-MM-DD 格式给出的 date_string 的 date 对象:

    >>>

    >>> from datetime import date

    >>> date.fromisoformat('2019-12-04')

    datetime.date(2019, 12, 4)

    这是 date.isoformat() 的逆操作。 它只支持 YYYY-MM-DD 格式。

    3.7 新版功能.

    classmethod date.fromisocalendar(year, week, day)

    返回指定 year, week 和 day 所对应 ISO 历法日期的 date。 这是函数 date.isocalendar() 的逆操作。

    3.8 新版功能.

    类属性:

    date.min

    最小的日期 date(MINYEAR, 1, 1) 。

    date.max

    最大的日期 ,date(MAXYEAR, 12, 31)。

    date.resolution

    两个日期对象的最小间隔,timedelta(days=1)。

    实例属性(只读):

    date.year

    在 MINYEAR 和 MAXYEAR 之间,包含边界。

    date.month

    1 至 12(含)

    date.day

    返回1到指定年月的天数间的数字。

    支持的运算:

    运算

    结果:

    date2 = date1 + timedelta

    date2 等于从 date1 减去 timedelta.days 天。 (1)

    date2 = date1 - timedelta

    计算 date2 的值使得 date2 + timedelta == date1。 (2)

    timedelta = date1 - date2

    (3)

    date1 < date2

    如果 date1 的时间在 date2 之前则认为 date1 小于 date2 。 (4)

    注释:

    如果 timedelta.days > 0 则 date2 将在时间线上前进,如果 timedelta.days < 0 则将后退。 操作完成后 date2 - date1 == timedelta.days。 timedelta.seconds 和 timedelta.microseconds 会被忽略。 如果 date2.year 将小于 MINYEAR 或大于 MAXYEAR 则会引发 OverflowError。

    timedelta.seconds 和 timedelta.microseconds 会被忽略。

    此值完全精确且不会溢出。 操作完成后 timedelta.seconds 和 timedelta.microseconds 均为 0,并且 date2 + timedelta == date1。

    换句话说,当且仅当 date1.toordinal() < date2.toordinal() 时 date1 < date2。 日期比较会引发 TypeError,如果比较目标不为 date 对象的话。 不过也可能会返回 NotImplemented,如果比较目标具有 timetuple() 属性的话。 这个钩子给予其他日期对象类型实现混合类型比较的机会。 否则,当 date 对象与不同类型的对象比较时将会引发 TypeError,除非是 == 或 != 比较。 后两种情况将分别返回 False 或 True。

    在布尔运算中,所有 date 对象都会被视为真值。

    实例方法:

    date.replace(year=self.year, month=self.month, day=self.day)

    返回一个具有同样值的日期,除非通过任何关键字参数给出了某些形参的新值。

    示例:

    >>>

    >>> from datetime import date

    >>> d = date(2002, 12, 31)

    >>> d.replace(day=26)

    datetime.date(2002, 12, 26)

    date.timetuple()

    返回一个 time.struct_time,即 time.localtime() 所返回的类型。

    hours, minutes 和 seconds 值均为 0,且 DST 旗标值为 -1。

    d.timetuple() 等价于:

    time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1))

    其中 yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1 是当前年份中的日期序号,1 月 1 日的序号为 1。

    date.toordinal()

    返回日期的预期格列高利历序号,其中公元 1 年 1 月 1 日的序号为 1。 对于任意 date 对象 d,date.fromordinal(d.toordinal()) == d。

    date.weekday()

    返回一个整数代表星期几,星期一为0,星期天为6。例如, date(2002, 12, 4).weekday() == 2,表示的是星期三。参阅 isoweekday()。

    date.isoweekday()

    返回一个整数代表星期几,星期一为1,星期天为7。例如:date(2002, 12, 4).isoweekday() == 3,表示星期三。参见 weekday(), isocalendar()。

    date.isocalendar()

    返回一个三元元组,(ISO year, ISO week number, ISO weekday) 。

    ISO 历法是一种被广泛使用的格列高利历。 3

    ISO 年由 52 或 53 个完整星期构成,每个星期开始于星期一结束于星期日。 一个 ISO 年的第一个星期就是(格列高利)历法的一年中第一个包含星期四的星期。 这被称为 1 号星期,这个星期四所在的 ISO 年与其所在的格列高利年相同。

    例如,2004 年的第一天是星期四,因此 ISO 2004 年的第一个星期开始于 2003 年 12 月 29 日星期一,结束于 2004 年 1 月 4 日星期日:

    >>>

    >>> from datetime import date

    >>> date(2003, 12, 29).isocalendar()

    (2004, 1, 1)

    >>> date(2004, 1, 4).isocalendar()

    (2004, 1, 7)

    date.isoformat()

    返回一个以 ISO 8601 格式 YYYY-MM-DD 来表示日期的字符串:

    >>>

    >>> from datetime import date

    >>> date(2002, 12, 4).isoformat()

    '2002-12-04'

    这是 date.fromisoformat() 的逆操作。

    date.str()

    对于日期对象 d, str(d) 等价于 d.isoformat() 。

    date.ctime()

    返回一个表示日期的字符串:

    >>>

    >>> from datetime import date

    >>> date(2002, 12, 4).ctime()

    'Wed Dec 4 00:00:00 2002'

    d.ctime() 等效于:

    time.ctime(time.mktime(d.timetuple()))

    在原生 C ctime() 函数 (time.ctime() 会发起调用该函数,但 date.ctime() 则不会) 遵循 C 标准的平台上。

    date.strftime(format)

    返回一个由显式格式字符串所指明的代表日期的字符串。 表示时、分或秒的格式代码值将为 0。 要获取格式指令的完整列表请参阅 strftime() 和 strptime() 的行为。

    date.format(format)

    与 date.strftime() 相同。 此方法使得为 date 对象指定以 格式化字符串字面值 表示的格式化字符串以及使用 str.format() 进行格式化成为可能。 要获取格式指令的完整列表,请参阅 strftime() 和 strptime() 的行为。

    class:date 用法示例

    计算距离特定事件天数的例子:

    >>>

    >>> import time

    >>> from datetime import date

    >>> today = date.today()

    >>> today

    datetime.date(2007, 12, 5)

    >>> today == date.fromtimestamp(time.time())

    True

    >>> my_birthday = date(today.year, 6, 24)

    >>> if my_birthday < today:

    ... my_birthday = my_birthday.replace(year=today.year + 1)

    >>> my_birthday

    datetime.date(2008, 6, 24)

    >>> time_to_birthday = abs(my_birthday - today)

    >>> time_to_birthday.days

    202

    使用 date 的更多例子:

    >>> from datetime import date

    >>> d = date.fromordinal(730920) # 730920th day after 1. 1. 0001

    >>> d

    datetime.date(2002, 3, 11)

    >>> # Methods related to formatting string output

    >>> d.isoformat()

    '2002-03-11'

    >>> d.strftime("%d/%m/%y")

    '11/03/02'

    >>> d.strftime("%A %d. %B %Y")

    'Monday 11. March 2002'

    >>> d.ctime()

    'Mon Mar 11 00:00:00 2002'

    >>> 'The {1} is {0:%d}, the {2} is {0:%B}.'.format(d, "day", "month")

    'The day is 11, the month is March.'

    >>> # Methods for to extracting 'components' under different calendars

    >>> t = d.timetuple()

    >>> for i in t:

    ... print(i)

    2002 # year

    3 # month

    11 # day

    0

    0

    0

    0 # weekday (0 = Monday)

    70 # 70th day in the year

    -1

    >>> ic = d.isocalendar()

    >>> for i in ic:

    ... print(i)

    2002 # ISO year

    11 # ISO week number

    1 # ISO day number ( 1 = Monday )

    >>> # A date object is immutable; all operations produce a new object

    >>> d.replace(year=2005)

    datetime.date(2005, 3, 11)

    更多相关内容
  • bootstrap daterangepicker 汉化中文版

    热门讨论 2017-05-24 17:01:15
    完整 bootstrap daterangepicker 汉化版下载,使用说明
  • Linux命令之date命令

    千次阅读 2022-01-22 14:59:56
    Linux date命令可以用来显示或设定系统的日期与时间。在显示方面使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。在备份文件的时候我们常结合此命令生成当前日期和时间的文件名。格式符前面以+加号...

    一、date命令简介

      Linux date命令可以用来显示或设定系统的日期与时间。在显示方面使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。在备份文件的时候我们常结合此命令生成当前日期和时间的文件名。格式符前面以+加号开头,若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

    二、使用示例

    1、获取命令帮助

    [root@s145 ~]# date --help

    2、查看命令版本

    [root@s145 ~]# date --version
    date (GNU coreutils) 8.22
    Copyright © 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    Written by David MacKenzie.

    3、查看系统日期及时间

    [root@s145 ~]# date
    Sat Jan 22 15:08:12 CST 2022

    4、以YYYY-MM-DD显示日期

    [root@s145 ~]# date +%F
    2022-01-22

    5、以MM/DD/YY显示日期

    [root@s145 ~]# date +%D
    01/22/22

    6、以MM/DD/YYYY显示日期

    [root@s145 ~]# date +%x
    01/22/2022

    7、获取系统年份、月份、日子

    [root@s145 ~]# date +%Y
    2022
    [root@s145 ~]# date +%m
    01
    [root@s145 ~]# date +%d
    22

    8、获取系统星期值

    [root@s145 ~]# date +%a
    Sat
    [root@s145 ~]# date +%A
    Saturday
    [root@s145 ~]# date +%u
    6
    [root@s145 ~]# date +%w
    6

    9、获取系统时区

    [root@s145 ~]# date +%z
    +0800
    [root@s145 ~]# date +%Z
    CST

    10、查询当前日期是一年中的第几周

    [root@s145 ~]# date +%W
    03
    [root@s145 ~]# date +%U
    03

    11、获取系统时间

    [root@s145 ~]# date +%T
    15:51:42
    [root@s145 ~]# date +%X
    03:53:30 PM

    12、显示十二小时制时间

    [root@s145 ~]# date +%r
    03:51:58 PM

    13、显示24小时制时间

    [root@s145 ~]# date +%R
    15:52

    14、按照指定样式显示时间

    [root@s145 ~]# date +%H-%M.%S
    15-55.07
    [root@s145 ~]# date +%H.%M.%S
    15.55.10

    15、从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

    [root@s145 ~]# date +%s
    1642838148

    16、设置系统时间

    在这里插入图片描述

    17、设置时间及日期

    在这里插入图片描述

    18、按照指定格式显示时间和日期

    在这里插入图片描述

    19、日期和时间分行显示

    [root@s145 ~]# date +%F%n%T
    2022-01-22
    16:36:51

    20、按照字符串的设置显示日期

    在这里插入图片描述

    三、使用语法及参数说明

    1、使用语法

    用法:#date [参数选项] [+格式]
    或者:date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]

    2、参数说明

    参数参数说明
    -d, --date=STRING显示 datestr 中所设定的时间 (非系统时间)
    -s, --set=STRING将系统时间设为 datestr 中所设定的时间
    -u, --utc, --universal打印或设置协调世界时(UTC)
    –version显示版本编号
    –help显示辅助讯息

    3、时间格式符号

    符号符号说明
    %印出 %
    %n下一行
    %t跳格
    %H小时(00…23)
    %I小时(01…12)
    %k小时(0…23)
    %l小时(1…12)
    %M分钟(00…59)
    %p显示本地 AM 或 PM
    %r直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
    %R24小时制方式显示时间,相当于%H:%M
    %s从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
    %S秒(00…60)
    %T直接显示时间 (24 小时制)
    %X相当于 %H:%M:%S
    %z数字方式显示时区
    %Z字母缩写方式显示时区

    4、日期格式符号

    符号符号说明
    %a星期几 ,缩写(Sun…Sat)
    %A星期几 ,完整英文星期(Sunday…Saturday)
    %b月份 (Jan…Dec)
    %B月份 (January…December)
    %c直接显示日期与时间
    %d日 (01…31)
    %D直接显示日期 (mm/dd/yy)
    %e一个月中的第几天,类似%_d
    %F完整的日期,相当于%Y-%m-%d
    %h同 %b
    %j一年中的第几天 (001…366)
    %m月份 (01…12)
    %u一周中的第几天 (1…7) (1是星期一)
    %U一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)
    %w一周中的第几天 (0…6)(0是星期天)
    %W一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
    %x直接显示日期 (mm/dd/yy)
    %y年份的最后两位数字 (00.99)
    %Y完整年份 (0000…9999)
    展开全文
  • 8hutool实战:ChineseDate(农历日期工具类)

    万次阅读 多人点赞 2021-05-31 22:10:30
    cn.hutool.core.date.ChineseDate.getGregorianDate() 获取公历的Date cn.hutool.core.date.ChineseDate.getGregorianCalendar() 获取公历的Calendar cn.hutool.core.date.ChineseDate.getFestivals() 获得节日 ...
    技术活,该赏
    关注+一键三连(点赞,评论,收藏)再看,养成好习惯
    

    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());
    

    源码解析:

    链接:待补充
    
    展开全文
  • Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss ...public static Date ... Date curren...
    Java时间格式转换大全
    
    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 SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       ParsePosition pos = new ParsePosition(8);
       Date currentTime_2 = formatter.parse(dateString, pos);
       return currentTime_2;
    }
    /**
       * 获取现在时间
       * 
       * @return返回短时间格式 yyyy-MM-dd
       */
    DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");         
    DateFormat format 2= new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");         
    Date date = null;    
    String str = null;                  
                
    // String转Date    
    str = "2007-1-18";          
    try {    
               date = format1.parse(str);   
               data = format2.parse(str); 
    } catch (ParseException e) {    
               e.printStackTrace();    
    }   
    /**
       * 获取现在时间
       * 
       * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
       */
    public static String getStringDate() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 获取现在时间
       * 
       * @return 返回短时间字符串格式yyyy-MM-dd
       */
    public static String getStringDateShort() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 获取时间 小时:分;秒 HH:mm:ss
       * 
       * @return
       */
    public static String getTimeShort() {
       SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
       Date currentTime = new Date();
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
       * 
       * @param strDate
       * @return
       */
    public static Date strToDateLong(String strDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       ParsePosition pos = new ParsePosition(0);
       Date strtodate = formatter.parse(strDate, pos);
       return strtodate;
    }
    /**
       * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
       * 
       * @param dateDate
       * @return
       */
    public static String dateToStrLong(java.util.Date dateDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(dateDate);
       return dateString;
    }
    /**
       * 将短时间格式时间转换为字符串 yyyy-MM-dd
       * 
       * @param dateDate
       * @param k
       * @return
       */
    public static String dateToStr(java.util.Date dateDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       String dateString = formatter.format(dateDate);
       return dateString;
    }
    /**
       * 将短时间格式字符串转换为时间 yyyy-MM-dd 
       * 
       * @param strDate
       * @return
       */
    public static Date strToDate(String strDate) {
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
       ParsePosition pos = new ParsePosition(0);
       Date strtodate = formatter.parse(strDate, pos);
       return strtodate;
    }
    /**
       * 得到现在时间
       * 
       * @return
       */
    public static Date getNow() {
       Date currentTime = new Date();
       return currentTime;
    }
    /**
       * 提取一个月中的最后一天
       * 
       * @param day
       * @return
       */
    public static Date getLastDate(long day) {
       Date date = new Date();
       long date_3_hm = date.getTime() - 3600000 * 34 * day;
       Date date_3_hm_date = new Date(date_3_hm);
       return date_3_hm_date;
    }
    /**
       * 得到现在时间
       * 
       * @return 字符串 yyyyMMdd HHmmss
       */
    public static String getStringToday() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    /**
       * 得到现在小时
       */
    public static String getHour() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       String hour;
       hour = dateString.substring(11, 13);
       return hour;
    }
    /**
       * 得到现在分钟
       * 
       * @return
       */
    public static String getTime() {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String dateString = formatter.format(currentTime);
       String min;
       min = dateString.substring(14, 16);
       return min;
    }
    /**
       * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
       * 
       * @param sformat
       *             yyyyMMddhhmmss
       * @return
       */
    public static String getUserDate(String sformat) {
       Date currentTime = new Date();
       SimpleDateFormat formatter = new SimpleDateFormat(sformat);
       String dateString = formatter.format(currentTime);
       return dateString;
    }
    --------------------------------------------------------------------------------------------------------------------------------
    
    做成方法
    
    import 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 SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      ParsePosition pos = new ParsePosition(8);
      Date currentTime_2 = formatter.parse(dateString, pos);
      return currentTime_2;
     }
    
     /**
      * 获取现在时间
      * 
      * @return返回短时间格式 yyyy-MM-dd
      */
     public static Date getNowDateShort() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      ParsePosition pos = new ParsePosition(8);
      Date currentTime_2 = formatter.parse(dateString, pos);
      return currentTime_2;
     }
    
     /**
      * 获取现在时间
      * 
      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
      */
     public static String getStringDate() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 获取现在时间
      * 
      * @return 返回短时间字符串格式yyyy-MM-dd
      */
     public static String getStringDateShort() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 获取时间 小时:分;秒 HH:mm:ss
      * 
      * @return
      */
     public static String getTimeShort() {
      SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
      Date currentTime = new Date();
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
      * 
      * @param strDate
      * @return
      */
     public static Date strToDateLong(String strDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(strDate, pos);
      return strtodate;
     }
    
     /**
      * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
      * 
      * @param dateDate
      * @return
      */
     public static String dateToStrLong(java.util.Date dateDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(dateDate);
      return dateString;
     }
    
     /**
      * 将短时间格式时间转换为字符串 yyyy-MM-dd
      * 
      * @param dateDate
      * @param k
      * @return
      */
     public static String dateToStr(java.util.Date dateDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(dateDate);
      return dateString;
     }
    
     /**
      * 将短时间格式字符串转换为时间 yyyy-MM-dd 
      * 
      * @param strDate
      * @return
      */
     public static Date strToDate(String strDate) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(strDate, pos);
      return strtodate;
     }
    
     /**
      * 得到现在时间
      * 
      * @return
      */
     public static Date getNow() {
      Date currentTime = new Date();
      return currentTime;
     }
    
     /**
      * 提取一个月中的最后一天
      * 
      * @param day
      * @return
      */
     public static Date getLastDate(long day) {
      Date date = new Date();
      long date_3_hm = date.getTime() - 3600000 * 34 * day;
      Date date_3_hm_date = new Date(date_3_hm);
      return date_3_hm_date;
     }
    
     /**
      * 得到现在时间
      * 
      * @return 字符串 yyyyMMdd HHmmss
      */
     public static String getStringToday() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 得到现在小时
      */
     public static String getHour() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      String hour;
      hour = dateString.substring(11, 13);
      return hour;
     }
    
     /**
      * 得到现在分钟
      * 
      * @return
      */
     public static String getTime() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String dateString = formatter.format(currentTime);
      String min;
      min = dateString.substring(14, 16);
      return min;
     }
    
     /**
      * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
      * 
      * @param sformat
      *            yyyyMMddhhmmss
      * @return
      */
     public static String getUserDate(String sformat) {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat(sformat);
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    
     /**
      * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟
      */
     public static String getTwoHour(String st1, String st2) {
      String[] kk = null;
      String[] jj = null;
      kk = st1.split(":");
      jj = st2.split(":");
      if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
       return "0";
      else {
       double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
       double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
       if ((y - u) > 0)
        return y - u + "";
       else
        return "0";
      }
     }
    
     /**
      * 得到二个日期间的间隔天数
      */
     public static String getTwoDay(String sj1, String sj2) {
      SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
      long day = 0;
      try {
       java.util.Date date = myFormatter.parse(sj1);
       java.util.Date mydate = myFormatter.parse(sj2);
       day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
      } catch (Exception e) {
       return "";
      }
      return day + "";
     }
    
     /**
      * 时间前推或后推分钟,其中JJ表示分钟.
      */
     public static String getPreTime(String sj1, String jj) {
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      String mydate1 = "";
      try {
       Date date1 = format.parse(sj1);
       long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
       date1.setTime(Time * 1000);
       mydate1 = format.format(date1);
      } catch (Exception e) {
      }
      return mydate1;
     }
    
     /**
      * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
      */
     public static String getNextDay(String nowdate, String delay) {
      try{
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      String mdate = "";
      Date d = strToDate(nowdate);
      long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
      d.setTime(myTime * 1000);
      mdate = format.format(d);
      return mdate;
      }catch(Exception e){
       return "";
      }
     }
    
     /**
      * 判断是否润年
      * 
      * @param ddate
      * @return
      */
     public static boolean isLeapYear(String ddate) {
    
      /**
       * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
       * 3.能被4整除同时能被100整除则不是闰年
       */
      Date d = strToDate(ddate);
      GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
      gc.setTime(d);
      int year = gc.get(Calendar.YEAR);
      if ((year % 400) == 0)
       return true;
      else if ((year % 4) == 0) {
       if ((year % 100) == 0)
        return false;
       else
        return true;
      } else
       return false;
     }
    
     /**
      * 返回美国时间格式 26 Apr 2006
      * 
      * @param str
      * @return
      */
     public static String getEDate(String str) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(str, pos);
      String j = strtodate.toString();
      String[] k = j.split(" ");
      return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
     }
    
     /**
      * 获取一个月的最后一天
      * 
      * @param dat
      * @return
      */
     public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
      String str = dat.substring(0, 8);
      String month = dat.substring(5, 7);
      int mon = Integer.parseInt(month);
      if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
       str += "31";
      } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
       str += "30";
      } else {
       if (isLeapYear(dat)) {
        str += "29";
       } else {
        str += "28";
       }
      }
      return str;
     }
    
     /**
      * 判断二个时间是否在同一个周
      * 
      * @param date1
      * @param date2
      * @return
      */
     public static boolean isSameWeekDates(Date date1, Date date2) {
      Calendar cal1 = Calendar.getInstance();
      Calendar cal2 = Calendar.getInstance();
      cal1.setTime(date1);
      cal2.setTime(date2);
      int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
      if (0 == subYear) {
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
       // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
       if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
        return true;
      }
      return false;
     }
    
     /**
      * 产生周序列,即得到当前时间所在的年度是第几周
      * 
      * @return
      */
     public static String getSeqWeek() {
      Calendar c = Calendar.getInstance(Locale.CHINA);
      String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
      if (week.length() == 1)
       week = "0" + week;
      String year = Integer.toString(c.get(Calendar.YEAR));
      return year + week;
     }
    
     /**
      * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
      * 
      * @param sdate
      * @param num
      * @return
      */
     public static String getWeek(String sdate, String num) {
      // 再转换为时间
      Date dd = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(dd);
      if (num.equals("1")) // 返回星期一所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
      else if (num.equals("2")) // 返回星期二所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
      else if (num.equals("3")) // 返回星期三所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
      else if (num.equals("4")) // 返回星期四所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
      else if (num.equals("5")) // 返回星期五所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
      else if (num.equals("6")) // 返回星期六所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
      else if (num.equals("0")) // 返回星期日所在的日期
       c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
      return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
     }
    
     /**
      * 根据一个日期,返回是星期几的字符串
      * 
      * @param sdate
      * @return
      */
     public static String getWeek(String sdate) {
      // 再转换为时间
      Date date = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(date);
      // int hour=c.get(Calendar.DAY_OF_WEEK);
      // hour中存的就是星期几了,其范围 1~7
      // 1=星期日 7=星期六,其他类推
      return new SimpleDateFormat("EEEE").format(c.getTime());
     }
     public static String getWeekStr(String sdate){
      String str = "";
      str = VeDate.getWeek(sdate);
      if("1".equals(str)){
       str = "星期日";
      }else if("2".equals(str)){
       str = "星期一";
      }else if("3".equals(str)){
       str = "星期二";
      }else if("4".equals(str)){
       str = "星期三";
      }else if("5".equals(str)){
       str = "星期四";
      }else if("6".equals(str)){
       str = "星期五";
      }else if("7".equals(str)){
       str = "星期六";
      }
      return str;
     }
    
     /**
      * 两个时间之间的天数
      * 
      * @param date1
      * @param date2
      * @return
      */
     public static long getDays(String date1, String date2) {
      if (date1 == null || date1.equals(""))
       return 0;
      if (date2 == null || date2.equals(""))
       return 0;
      // 转换为标准时间
      SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
      java.util.Date date = null;
      java.util.Date mydate = null;
      try {
       date = myFormatter.parse(date1);
       mydate = myFormatter.parse(date2);
      } catch (Exception e) {
      }
      long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
      return day;
     }
    
     /**
      * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
      * 此函数返回该日历第一行星期日所在的日期
      * 
      * @param sdate
      * @return
      */
     public static String getNowMonth(String sdate) {
      // 取该时间所在月的一号
      sdate = sdate.substring(0, 8) + "01";
    
      // 得到这个月的1号是星期几
      Date date = VeDate.strToDate(sdate);
      Calendar c = Calendar.getInstance();
      c.setTime(date);
      int u = c.get(Calendar.DAY_OF_WEEK);
      String newday = VeDate.getNextDay(sdate, (1 - u) + "");
      return newday;
     }
    
     /**
      * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数
      * 
      * @param k
      *            表示是取几位随机数,可以自己定
      */
    
     public static String getNo(int k) {
    
      return getUserDate("yyyyMMddhhmmss") + getRandom(k);
     }
    
     /**
      * 返回一个随机数
      * 
      * @param i
      * @return
      */
     public static String getRandom(int i) {
      Random jjj = new Random();
      // int suiJiShu = jjj.nextInt(9);
      if (i == 0)
       return "";
      String jj = "";
      for (int k = 0; k < i; k++) {
       jj = jj + jjj.nextInt(9);
      }
      return jj;
     }
    
     /**
      * 
      * @param args
      */
     public static boolean RightDate(String date) {
    
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      ;
      if (date == null)
       return false;
      if (date.length() > 10) {
       sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      } else {
       sdf = new SimpleDateFormat("yyyy-MM-dd");
      }
      try {
       sdf.parse(date);
      } catch (ParseException pe) {
       return false;
      }
      return true;
     }
    
     /***************************************************************************
      * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
      * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回
      **************************************************************************/
     public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      String dateString = formatter.format(currentTime);
      String s_nd = dateString.substring(0, 4); // 年份
      String s_yf = dateString.substring(5, 7); // 月份
      String s_rq = dateString.substring(8, 10); // 日期
      String sreturn = "";
      roc.util.MyChar mc = new roc.util.MyChar();
      if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 处理空值情况
       if (nd.equals("1")) {
        sreturn = s_nd;
        // 处理间隔符
        if (format.equals("1"))
         sreturn = sreturn + "年";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理月份
       if (yf.equals("1")) {
        sreturn = sreturn + s_yf;
        if (format.equals("1"))
         sreturn = sreturn + "月";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理日期
       if (rq.equals("1")) {
        sreturn = sreturn + s_rq;
        if (format.equals("1"))
         sreturn = sreturn + "日";
       }
      } else {
       // 不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式
       sdate = roc.util.RocDate.getOKDate(sdate);
       s_nd = sdate.substring(0, 4); // 年份
       s_yf = sdate.substring(5, 7); // 月份
       s_rq = sdate.substring(8, 10); // 日期
       if (nd.equals("1")) {
        sreturn = s_nd;
        // 处理间隔符
        if (format.equals("1"))
         sreturn = sreturn + "年";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理月份
       if (yf.equals("1")) {
        sreturn = sreturn + s_yf;
        if (format.equals("1"))
         sreturn = sreturn + "月";
        else if (format.equals("2"))
         sreturn = sreturn + "-";
        else if (format.equals("3"))
         sreturn = sreturn + "/";
        else if (format.equals("5"))
         sreturn = sreturn + ".";
       }
       // 处理日期
       if (rq.equals("1")) {
        sreturn = sreturn + s_rq;
        if (format.equals("1"))
         sreturn = sreturn + "日";
       }
      }
      return sreturn;
     }
    
     public static String getNextMonthDay(String sdate, int m) {
      sdate = getOKDate(sdate);
      int year = Integer.parseInt(sdate.substring(0, 4));
      int month = Integer.parseInt(sdate.substring(5, 7));
      month = month + m;
      if (month < 0) {
       month = month + 12;
       year = year - 1;
      } else if (month > 12) {
       month = month - 12;
       year = year + 1;
      }
      String smonth = "";
      if (month < 10)
       smonth = "0" + month;
      else
       smonth = "" + month;
      return year + "-" + smonth + "-10";
     }
    
     public static String getOKDate(String sdate) {
      if (sdate == null || sdate.equals(""))
       return getStringDateShort();
    
      if (!VeStr.Isdate(sdate)) {
       sdate = getStringDateShort();
      }
      // 将“/”转换为“-”
      sdate = VeStr.Replace(sdate, "/", "-");
      // 如果只有8位长度,则要进行转换
      if (sdate.length() == 8)
       sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-" + sdate.substring(6, 8);
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      ParsePosition pos = new ParsePosition(0);
      Date strtodate = formatter.parse(sdate, pos);
      String dateString = formatter.format(strtodate);
      return dateString;
     }
    
     public static void main(String[] args) throws Exception {
      try {
       //System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));
      } catch (Exception e) {
       throw new Exception();
      }
      //System.out.println("sss");
     }

     

    展开全文
  • java Date时间工具类

    千次阅读 2019-04-28 13:53:57
    java Date时间工具类 最近项目中遇到对时间处理的地方比较多,每次碰到处理时间格式问题的时候 就要去翻翻找找感觉那样挺烦人的,所以为了方便接下来的开发我自己弄了个处理时间的工具类,需要的自取。 /** * 工具...
  • Linux中date 以及date -d命令的详解

    千次阅读 多人点赞 2020-10-28 15:41:43
    date命令可以按照指定格式显示日期,只输入date则以默认格式显示当前时间。如下: [root@server1 files]# date Wed Oct 28 17:20:00 CST 2020 2. 指定格式显示时间 若要指定格式显示日期,可以使用“+”开头的字符...
  • Android Date时间工具类

    千次阅读 2018-12-18 13:53:46
    Date date_3_hm_date = new Date(date_3_hm); return date_3_hm_date; } /** * 得到现在时间 * * @return 字符串 yyyyMMdd HHmmss */ public static String getStringToday() { Date currentTime = new ...
  • 【Java 8 新特性】Java LocalDate 转 Date

    千次阅读 2021-09-06 13:16:17
    Java LocalDate 转 Date1. 使用 LocalDate.atTime2. 使用 LocalDate.atStartOfDay3. 使用 LocalDateTime.of4. 使用 Timestamp.valueOf完整示例参考文献 在这一页,我们将提供如何将java.time.LocalDate转换成java....
  • SwiftDate日期库使用详解

    千次阅读 2019-07-01 17:18:33
    SwiftDate日期库使用详解 一、基本介绍 1、什么是SwiftDate? (1) SwiftDate是一个使用Swift语言编写的Date的封装库,使用它可以很方便的对日期进行处理,方便我们工程对日期显示的格式需求。 (2) SwiftDate功能...
  • 字符串"yyyy-MM-dd"格式的时间想要转换成Date类型同样格式的时候,总是转换不好,会变成英文格式(Sat Mar 23 00:00:00 GMT+08:00 1957)的时间。就试试下面的方法。 //获取的值为"19570323" String dateString = ...
  • java获取Date时间的各种方式汇总

    万次阅读 2019-01-24 00:06:13
    1. 常用的时间获取方式 public class DateUtils {    /**  * 获取时间戳  * 输出结果:1438692801766  */  @Test ... Date date = new Date();  long times = date.getTime();  System.o...
  • js转换Date日期格式

    万次阅读 2019-08-22 09:40:53
    var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) // 所以获取当前月份是myDate....
  • ORACLE中date类型字段的处理

    万次阅读 2019-04-09 21:24:05
    (1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' ...(2)转换字符串为日期使用ORACLE内部函数to_date() to_date()函数的参数是to_char()函数参数的反转。 to_date(string_value , ...
  • Element el-date-picker 日期选择器详解

    千次阅读 2021-10-13 15:49:21
    例如: 选择其他日期单位 <el-date-picker v-model="valueWeek" type="week" format="yyyy 第WW周" placeholder="选择周"> el-date-picker> <el-date-picker v-model="valueMonth" type="month" placeholder="选择...
  • Date类型

    千次阅读 2018-08-21 19:24:11
    Date类型是在早起Java中的java.util.Date类基础上构建的。因此,Date类型使用自UTC(国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期 这种数据存储格式,Date类型保存的日期能精确到1970年1月1...
  • PHP日期时间函数date()使用方法

    千次阅读 2021-04-11 11:11:00
    PHP中的date()函数,可以说是PHP预设函数中使用频率比较高的一个函数,下面我们就说一说,关于date()函数的所有的用法php date()函数定义PHP Date() 函数把时间戳格式化为更易读的日期和时间。语法date(format,...
  • Linux —— 时间(date设置系统时间)

    万次阅读 2019-05-30 22:39:33
    Date命令的作用:以给定的格式显示当前的时间,或者设置系统时间 一、了解date命令的参数 date命令使用方式: 用法:date [选项]... [+格式]  或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] ...
  • 【hive】String to Date 转化大全

    千次阅读 2019-10-30 18:12:53
    Input column name: dt (String).Replace dt with your column name. Input Format Code Output Format ... to_date(from_unixtime(UNIX_TIMESTAMP(dt,’ddMMyyyy’))) yyyy-MM-dd dd-MM-yyyy ...
  • 文章目录SpringMVC日期Date格式转换1. 通过注解`@DateTimeForma()`实现日期格式转换。【 *** 推荐使用】2. 编写自定义转换器实现`Converter`,通过重写方法进行类型转换。2.1 编写自定义转换器实现`Converter`2.2 ...
  • Date转String -String转Date

    千次阅读 2020-11-19 14:57:56
    //Date类型转String //String 类型转Date
  • java中Date与String的相互转换

    千次阅读 2021-09-24 21:31:49
    java中通过SimpleDateFormat可以实现Date与String的相互转换。 1.String转Date 例1:年月日 时分秒 String str1 = "2021-09-24 12:13:14"; SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ...
  • JAVA 日期Date加减整理

    万次阅读 2018-07-30 23:16:25
    一、充分利用SimpleDateFormat import java.text.SimpleDateFormat; import java.util....import java.util.Date; public class DateTestUtil { public static void main(String[] args) throws Exception...
  • Js日期函数-Date方法

    千次阅读 2020-06-29 18:52:51
    Ⅰ- 壹 - Date对象 一 Date对象简介 日期和时间,在Web应用中随处可见,也必不可少。 JS脚本内置了Date对象,该对象为我们提供了一些列操作时间和日期的方法。 1 使用时必须使用new来调用创建我们的日期对象(既...
  • java string类型怎么转化成date类型

    千次阅读 2021-03-17 14:52:19
    string类型转化为date类型:方法一,Date date=new Date("2018-9-30");方法二,String =(new SimpleDateFormat("格式")).format(Date);方法三,SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");String ...
  • JS Date时间格式化

    千次阅读 2021-06-03 19:09:25
    JS Date时间格式化 1.1日期的格式化 1.1方法一(格式,日期)) // 入参 fmt-格式 date-日期 function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,065,816
精华内容 1,226,326
关键字:

date