我需要将传入日期字符串格式“ 20130212”(YYYYMMDD)转换为12/02/2013(DD / MM / YYYY)
使用ThreadLocal
。我知道没有这种方法可以做到这一点ThreadLocal
。谁能帮我?
转换不包含ThreadLocal
:
final SimpleDateFormat format2 = new SimpleDateFormat("MM/dd/yyyy");
final SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
final Date date = format1.parse(tradeDate);
final Date formattedDate = format2.parse(format2.format(date));
Java中的ThreadLocal除了编写不可变的类外,还是一种实现线程安全的方法。由于SimpleDateFormat不是线程安全的,因此可以使用ThreadLocal使其成为线程安全的。
class DateFormatter{
private static ThreadLocal<SimpleDateFormat> outDateFormatHolder = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("MM/dd/yyyy");
}
};
private static ThreadLocal<SimpleDateFormat> inDateFormatHolder = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyyMMdd");
}
};
public static String formatDate(String date) throws ParseException {
return outDateFormatHolder.get().format(
inDateFormatHolder.get().parse(date));
}
}
问题内容: 我有标准ISO 8601格式的日期/时间值,例如 2010-07-26T11:37:52Z 。 我想要日期 为2010年7月26日(dd-mon-yyyy) 。我该怎么做? 问题答案: 构造两个SimpleDateFormat对象。首先,您将值从()解析为Date对象,第二次用于将Date对象转换为字符串,例如 解析可能会引发ParseException,因此您需要捕获并处理它。
问题内容: 跟进查询如何工作,找不到说明跟进查询如何工作的文档,是否还有其他类似的强制转换值查询? SELECT date‘2017-01-01’FROM dual; 提供结果1/1/2017 问题答案: 您的查询使用的是日期文字。从Oracle文档中: 您可以将DATE值指定为字符串文字,或者可以使用TO_DATE函数将字符或数字值转换为日期值。DATE文字是Oracle Database接受T
问题内容: 我正在尝试将以下字符串转换为日期类型: 但这是打印以下内容: 我如何获得这个日期来保留毫秒? 问题答案: 实际上,convertedDate对象确实包含毫秒信息。这里的问题是toString()方法格式不能打印毫秒。 做 您还可以检查ms是否设置为
我正在尝试动态转换日期。我试过这个方法,但它是无效的。 如何使其成为对象的数组?
周日->明谷-0 周一->赛宁-1 周二->Selasa-2 帮我谢谢
问题内容: 我使用Hibernate(4.2)作为持久性提供程序,并且我有一个包含Date字段的JPA实体: 对应于START_DATE的列定义为(无时区)。 我在应用程序内部使用Joda- Time(2.3)处理日期(始终使用UTC),并且在持久化Entity之前,我使用Joda的类方法获取JDK 对象以遵守映射。 : 当我在数据库中查看存储的值时,我注意到某个地方(JDK?Hibernate?