gpt4 book ai didi

java - 我有一个日期对象,需要对其进行格式化以进行缓存查找,simpledateformat 不是线程安全的吗?

转载 作者:行者123 更新时间:2023-11-29 09:41:48 24 4
gpt4 key购买 nike

在我的 servlet 中,当收到请求时,我会创建一个日期对象。

Date now = new Date();

我想执行缓存查找,我需要创建一个辅助函数来将日期格式化为:

2012.04.24-10:34

即:yyyy-MM-dd,HH:mm

我有这个使用简单的日期格式:

public class DateHelpers {
public static final DateFormat minuteDateFormat = new SimpleDateFormat("yyyy-MM-dd,HH:mm", Locale.US);

public static String getDateKey(Date now) {
// use minuteDateFormat to format date
}
}

但我读到简单的日期格式不是线程安全的。

我没有将字符串解析为日期格式,所以也许有更好更快的方法来执行此操作?

我正在获取一个日期对象并将其格式化为一个字符串,它必须是线程安全的,因为许多请求将使用此 DateHelper 静态方法从日期中获取 key 。

最佳答案

退一步说,如果您真的对性能有压力,我会完全避免格式化日期,而只使用 unix 时间戳作为键(即 System.currentTimeMllis())。如果您想根据现有日期对象进行查找,date.getTime() 会为您提供时间戳。

如果您想将它四舍五入到一分钟,您可以整除并乘以 60,000 - 这样速度更快并且保证线程安全。

对于我格式化日期的情况,我通常要么按需创建日期格式(这不是昂贵的),要么我有一个实用对象池,我明确地与每个工作人员相关联.

线程本地解决方案会起作用,但随着时间的推移,很容易失去对所有 TL 的跟踪,最终得到更难以调试的代码。

关于java - 我有一个日期对象,需要对其进行格式化以进行缓存查找,simpledateformat 不是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com