格式化日期
问题提出:SimpleDateFormat是非线程安全的,而您又需要一个ISO格式的日期。
解决方法:使用FastDateFormat或者使用DateFormatUtils提供的静态FastDateFormat实例,它提供了一些格式化日期的线程安全的方法。
使用举例:
Date now = new Date();
String isoDT = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(now);
System.out.println("It is currently: " + isoDT);
结果为It is currently: 2006-03-08T10:44:29+08:00
如果您想使用传统的格式化类型,可以用FastDateFormat来代替SimpleDateFormat,
// create a formatter that simply prints the year and month
FastDateFormat formatter =
new FastDateFormat( "yyyy-mm",
TimeZone.getDefault( ),
Locale.getDefault( ) );
String output = formatter.format( new Date( ) );
System.out.println(output);
在最新的版本中FastDateFormat的构造函数已经改为protected,统一使用getInstance()来获取FastDateFormat实例,上述的输出为2006-03.
Discussion:In fact, you should be aware that none of the Sun formatting classes are thread-safe. 以下是DateFormatUtils里面提供的Static date/time formats。
Name
Format
ISO_DATE_FORMAT
|
yyyy-MM-dd"2004-01-02"
|
ISO_DATE_TIME_ZONE_FORMAT
|
yyyy-MM-ddZZ"2004-01-02-07:00"
|
ISO_DATETIME_FORMAT
|
yyyy-MM-dd'T'HH:mm:ss"2004-01-02T23:22:12"
|
ISO_DATETIME_TIME_ZONE_FORMAT
|
yyyy-MM-dd'T'HH:mm:ssZZ"2004-01-02T21:13:45-07:00"
|
ISO_TIME_FORMAT
|
'T'HH:mm:ss"T04:23:22"
|
ISO_TIME_NO_T_FORMAT
|
HH:mm:ss"05:12:34"
|
ISO_TIME_NO_T_TIME_ZONE_FORMAT
|
HH:mm:ssZZ"12:32:22-07:00"
|
ISO_TIME_TIME_ZONE_FORMAT
|
'T'HH:mm:ssZZ"T18:23:22-07:00"
|
SMTP_DATETIME_FORMAT
|
EEE, dd MMM yyyy HH:mm:ss Z"Wed, 01 Feb 2004 20:03:01 CST"
|
分享到:
相关推荐
org.apache.commons.lang.time.DateFormatUtils.class org.apache.commons.lang.time.DateUtils$DateIterator.class org.apache.commons.lang.time.DateUtils.class org.apache.commons.lang.time....
org.apache.commons.lang.time.DateFormatUtils.class org.apache.commons.lang.time.DateUtils$DateIterator.class org.apache.commons.lang.time.DateUtils.class org.apache.commons.lang.time....
org.apache.commons.lang.time.DateFormatUtils.class org.apache.commons.lang.time.DateUtils$DateIterator.class org.apache.commons.lang.time.DateUtils.class org.apache.commons.lang.time....
Date date = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss").parse("2020-05-10 19:53:00"); ... } } ``` 使用FastDateFormat可以确保日期时间格式化结果正确且线程安全。 在实际开发中,我们可以根据需要...
`FastDateFormat`是比`SimpleDateFormat`更高效的日期格式化工具,减少了线程安全问题。 三、数学计算 `NumberUtils`提供了数学运算相关的辅助方法,如`NumberUtils.max()`和`NumberUtils.min()`可以找出一组数值...
4. **日期和时间**: `DateUtils`和`FastDateFormat`类分别提供了日期的解析、格式化和比较功能。`DateUtils`可以方便地进行日期的加减操作,`FastDateFormat`则是一种高效的日期格式化工具。 5. **反射工具**: `...
`DateUtils` 提供了日期的格式化、解析和比较功能,而 `FastDateFormat` 是一个高效的日期格式化器,比 Java 内置的 `SimpleDateFormat` 性能更优。 3. **对象操作**:`ClassUtils` 提供了关于类和对象的通用方法,...
4. 使用池化技术: 可以使用池化技术,例如Apache Commons Lang中的FastDateFormat类,来池化SimpleDateFormat对象,从而避免了线程安全问题。 结论 SimpleDateFormat类的线程安全问题是由于它使用了缓存机制导致的...
在Java中,处理阴历需要额外的库,比如`org.apache.commons.lang3.time.FastDateFormat`或者第三方的`com.github.bingoohuang:chinatime`库,这些库可以帮助开发者方便地实现农历和阳历之间的转换。 在Eclipse环境...
7. **日期时间处理**:日期时间格式化、比较、转换等工具类,例如使用Java 8的LocalDateTime或者三脚猫FastDateFormat。 8. **异常处理**:全局异常捕获和处理,提供统一的日志记录和错误反馈机制。 9. **性能优化...
为了支持农历,我们需要引入第三方库,如`org.apache.commons.lang3.time.FastDateFormat`或`com.github.zengfr.conuniv.calendar`,这些库通常包含了转换公历与农历的方法。开发万年历界面时,可以采用Swing或...
- `FastDateFormat` 是一个快速且线程安全的日期格式化器。 4. **枚举处理**: - `EnumUtils` 提供了对Java枚举类型的实用方法,如获取枚举值、检查枚举是否存在等。 5. **数学运算**: - `MathUtils` 提供了...
5. **日期/时间**:`DateUtils`和`FastDateFormat`类提供了日期和时间的处理功能,可以方便地进行日期格式化和解析。 6. **枚举支持**:在Java 5之前,没有内置的枚举类型,`EnumUtils`提供了对枚举的模拟和支持。 ...
4. **日期时间处理**:SAP的日期时间格式可能与Java的标准格式不同,`DateUtils`和`FastDateFormat`类可以方便地进行日期时间的格式化和解析,确保数据的一致性。 5. **反射工具**:在创建和操作SAP接口对象时,`...
首先,Java标准库并没有内置对农历的支持,但我们可以使用第三方库如"ChineseCalendar"、"Joda-Time"(配合"ChineseLunisolarCalendar"扩展)或者"FastDateFormat"等来实现这一功能。这些库通常提供了转换公历和农历...
此外,Apache Commons Lang的DateUtils和FastDateFormat也是常用的日期时间处理工具。 3. **Number工具类**:处理数字时,工具类可以帮助进行格式化、转换和数学运算。例如,BigDecimal和BigInteger用于高精度计算...
在Java中,实现农历转换通常需要自定义算法或引用第三方库,如`FastDateFormat`或`org.apache.commons.lang3.time`包中的类用于日期格式化,而`com.github.zengfr.conunian`或`com.lunarcalendar.io.LunarCalendar`...
4. **日期与时间**:DateUtils 提供了日期和时间的处理,如格式化、解析、比较等,而FastDateFormat 是一个高性能的日期格式化工具,比Java内置的SimpleDateFormat更快。 5. **枚举操作**:EnumUtils 提供了处理...
DateUtils和FastDateFormat等类提供了高效的日期和时间格式化以及解析功能,避免了对Java自带的日期类的繁琐操作。 3. **数学计算**:MathUtils类包含了一些高级的数学函数,如幂运算、开方、随机数生成等,为...