Kotlin中SimpleDateFormat、DateFormat与Joda-Time该如何选择?
结论
满足「无额外第三方依赖+运行效率最高」要求的方案是 SimpleDateFormat。
三类方案的对比说明
- Joda-Time:首先不符合无第三方依赖的要求,它属于独立的第三方日期处理库,引入会新增额外的依赖项。且目前官方已经停止维护,推荐迁移到JDK原生的
java.time系列API,没有必要额外引入。 - DateFormat:它是JDK提供的日期格式化抽象类,本身没有可直接使用的具体实现,实际使用时还是要实例化它的子类(最常用的就是SimpleDateFormat),性能和子类实现完全一致,不存在额外的效率优势。
- SimpleDateFormat:属于JDK原生自带的实现类,无需引入任何第三方依赖,是三者中实际运行效率最高的方案:
注意:
SimpleDateFormat不是线程安全的,多线程场景下使用建议每次操作单独创建实例,或者用ThreadLocal包装实例复用,避免并发操作引发的解析/格式化错误。
Kotlin场景额外优化建议
如果你的项目运行环境支持Java 8及以上版本,更推荐使用JDK原生java.time包下的DateTimeFormatter,它同样无任何第三方依赖,天生线程安全,性能比SimpleDateFormat更高,是当前Kotlin/JVM场景下官方推荐的日期处理方案。
内容的提问来源于stack exchange,提问作者Sweta Jain
相关产品推荐
相关产品推荐

