# com.eos.foundation.common.utils.DateUtil
# 构件包说明
本工具类实现了对日期的操作处理。
# 运算逻辑构件使用说明
该构件包包含以下构件:
序号 | 方法 | 功能描述 |
---|---|---|
1 | format(Date date, String pattern) | 格式化时间成指定格式的字符串 |
2 | getJVMDate() | 获取当前的JMV时间 |
3 | getJVMTimeMillis() | 获取JVM的当前时间对应的毫秒数 |
4 | parse(String dateString, String pattern) | 将字符串格式化成时间 |
# format:格式化时间成指定格式的字符串
# 【功能说明】
格式化时间成指定格式的字符串。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.common.utils.DateUtil.format,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | date | Date | 时间 |
参数 | pattern | String | 日期格式 |
返回值 | pattern | String | 指定的日期格式 |
抛出异常说明 无。
规则说明 无。
# 【参考案例】
示例:将日期转为"YYYY-MM-DD"格式的字符串。
场景描述 将日期按照不同格式显示。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | date | Date | date | 变量 | 传引用 |
参数 | pattern | String | pattern | 变量 | 传引用 |
返回值 | out0 | String | out1 | 变量 | 传引用 |
参数描述
- 第一个参数是要进行转换的日期。
- 第二个参数是要转换格式。支持的格式请参考java.text.SimpleDateFormat类的java doc。
- 返回值是格式化后的字符串。
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<date __type="java:java.util.Date">2008-08-08 13:15:15</date>
<out1 __isNullOrEmpty="null"/>
<pattern __isNullOrEmpty="yyyy-MM-dd"/>
</__root>
</bizContext>
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<date __type="java:java.util.Date">2008-08-08 13:15:15</date>
<out1 __type="java:java.lang.String">2008-08-08</out1>
<pattern __isNullOrEmpty="yyyy-MM-dd"/>
</__root>
</bizContext>
# getJVMDate:获取当前的JVM时间
# 【功能说明】
获取JVM的当前时间。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.common.utils.DateUtil.getJVMDate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明 无。
- 抛出异常说明 无。
- 规则说明 无。
# 【参考案例】
示例:获取当前的系统日期。
场景描述 获取系统日期。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
返回值 | out0 | Date | out1 | 变量 | 传引用 |
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<out1 __isNullOrEmpty="null"/>
</__root>
</bizContext>
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<out1 __type="java:java.util.Date">2008-08-19 15:36:03</out1>
</__root>
</bizContext>
# getJVMTimeMillis:获取JVM的当前时间对应的毫秒数
# 【功能说明】
获取JVM的当前时间对应的毫秒数。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.common.utils.DateUtil.getJVMTimeMillis,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明 无。
- 抛出异常说明 无。
- 规则说明 无。
# 【参考案例】
示例:获取JVM的当前时间对应的毫秒数。
场景描述 获取JVM的当前时间对应的毫秒数。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
返回值 | out0 | long | out1 | 变量 | 传引用 |
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __isNullOrEmpty="empty" __type="java:java.util.HashMap"/>
</bizContext>
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<out1 __type="java:java.lang.Long">1219131812093</out1>
</__root>
</bizContext>
# parse:将字符串格式化成时间
# 【功能说明】
将日期格式的字符串格式化成时间。
说明
采用java.text.SimpleDateFormat来格式化时间,SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。
# 日期和时间模式
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在分析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留): || 字母 || 日期或时间元素 || 表示 || 示例 ||
G | Era 标志符 | Text | AD |
---|---|---|---|
y | 年 | Year | 1996; 96 |
M | 年中的月份 | Month | July; Jul; 07 |
w | 年中的周数 | Number | 27 |
W | 月份中的周数 | Number | 2 |
D | 年中的天数 | Number | 189 |
d | 月份中的天数 | Number | 10 |
F | 月份中的星期 | Number | 2 |
E | 星期中的天数 | Text | Tuesday; Tue |
a | Am/pm 标记 | Text | PM |
H | 一天中的小时数(0-23) | Number | 0 |
k | 一天中的小时数(1-24) | Number | 24 |
K | am/pm 中的小时数(0-11) | Number | 0 |
h | am/pm 中的小时数(1-12) | Number | 12 |
m | 小时中的分钟数 | Number | 30 |
s | 分钟中的秒数 | Number | 55 |
S | 毫秒数 | Number | 978 |
z | 时区 | General time zone | Pacific Standard Time; PST; GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
模式字母通常是重复的,其数量确定其精确表示:
- Text: 对于格式化来说,如果模式字母的数量大于或等于 4,则使用完全形式;否则,在可用的情况下使用短形式或缩写形式。对于分析来说,两种形式都是可接受的,与模式字母的数量无关。
- Number: 对于格式化来说,模式字母的数量是最小的数位,如果数位不够,则用 0 填充以达到此数量。对于分析来说,模式字母的数量被忽略,除非必须分开两个相邻字段。
- Year: 对于格式化来说,如果模式字母的数量为 2,则年份截取为 2 位数,否则将年份解释为 number。 对于分析来说,如果模式字母的数量大于 2,则年份照字面意义进行解释,而不管数位是多少。因此使用模式 "MM/dd/yyyy",将 "01/11/12" 分析为公元 12 年 1 月 11 日。 在分析缩写年份模式("y" 或 "yy")时,SimpleDateFormat 必须相对于某个世纪来解释缩写的年份。这通过将日期调整为 SimpleDateFormat 实例创建之前的 80 年和之后 20 年范围内来完成。例如,在 "MM/dd/yy" 模式下,如果 SimpleDateFormat 实例是在 1997 年 1 月 1 日创建的,则字符串 "01/11/12" 将被解释为 2012 年 1 月 11 日,而字符串 "05/04/64" 将被解释为 1964 年 5 月 4 日。在分析时,只有恰好由两位数字组成的字符串(如 Character.isDigit(char) 所定义的)被分析为默认的世纪。其他任何数字字符串将照字面意义进行解释,例如单数字字符串,3 个或更多数字组成的字符串,或者不都是数字的两位数字字符串(例如"-1")。因此,在相同的模式下, "01/02/3" 或 "01/02/003" 解释为公元 3 年 1 月 2 日。同样,"01/02/-3" 分析为公元前 4 年 1 月 2 日。
- Month: 如果模式字母的数量为 3 或大于 3,则将月份解释为 text;否则解释为 number。
- General time zone: 如果时区有名称,则将它们解释为 text。对于表示 GMT 偏移值的时区,使用以下语法: GMTOffsetTimeZone: GMT Sign Hours : Minutes Sign: one of + - Hours: Digit Digit Digit Minutes: Digit Digit Digit: one of 0 1 2 3 4 5 6 7 8 9 Hours 必须在 0 到 23 之间,Minutes 必须在 00 到 59 之间。格式是与语言环境无关的,并且数字必须取自 Unicode 标准的 Basic Latin 块。 对于分析来说,RFC 822 time zones 也是可接受的。
- RFC 822 time zone: 对于格式化来说,使用 RFC 822 4-digit 时区格式: RFC822TimeZone: Sign TwoDigitHours Minutes TwoDigitHours: Digit Digit TwoDigitHours 必须在 00 和 23 之间。其他定义请参阅 general time zones。 对于分析来说,general time zones 也是可接受的。
SimpleDateFormat 还支持本地化日期和时间模式 字符串。在这些字符串中,以上所述的模式字母可以用其他与语言环境有关的模式字母来替换。SimpleDateFormat 不处理除模式字母之外的文本本地化;而由类的客户端来处理。
# 示例
以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。 || 日期和时间模式 || 结果 ||
"yyyy.MM.dd G 'at' HH:mm:ss z" | 2001.07.04 AD at 12:08:56 PDT |
---|---|
"EEE, MMM d, ''yy" | Wed, Jul 4, '01 |
"h:mm a" | 12:08 PM |
"hh 'o''clock' a, zzzz" | 12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" | 0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" | 02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" | Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" | 010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" | 2001-07-04T12:08:56.235-0700 |
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.common.utils.DateUtil.parse,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
类型 | 名称 | 数据类型 | 参数描述 |
参数 | dateStr | String | 日期字符串 |
参数 | pattern | String | 指定日期和时间模式 |
返回值 | date | String | 日期 |
抛出异常说明 无。
规则说明 无。
# 【参考案例】
示例:将格式为"yyyy-MM-dd"的字符串转化为日期。
场景描述 将不同格式的日期字符串转化为日期对象实例。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dateStr | String | dateStr | 变量 | 传引用 |
参数 | pattern | String | pattern | 变量 | 传引用 |
返回值 | out0 | Date | out1 | 变量 | 传引用 |
参数描述
- 第一个参数是要进行转换的日期字符串。
- 第二个参数是要转换格式。支持的格式请参考java.text.SimpleDateFormat类的java doc。
- 返回值是转换好的日期对象。
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<dateStr __type="java:java.lang.String">2008-01-01</dateStr>
<out1 __isNullOrEmpty="null"/>
<pattern __type="java:java.lang.String">yyyy-MM-dd</pattern>
</__root>
</bizContext>
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<dateStr __type="java:java.lang.String">2008-01-01</dateStr>
<out1 __type="java:java.util.Date">2008-01-01 00:00:00</out1>
<pattern __type="java:java.lang.String">yyyy-MM-dd</pattern>
</__root>
</bizContext>