我们有一些时间戳,用millis来表示,很久以前就有了。在用于日志记录、异常或toString()方法的字符串中,需要对这些时间戳进行格式化。一个简单而干净的格式就足够了。
那么,在Java中格式化时间戳的最简单和最快的方法是什么?
要求:
特别是,是否有人做了一个JDK方法的基准测试,可以用于此?
实际上,我不想使用SimpleDateFormat,因为我认为它的灵活性带来了太多的开销。
发布于 2016-10-29 11:45:12
易于使用,合理快速:
// All Java versions:
new java.sql.Timestamp(millis).toString(); // 2016-10-29 12:28:41.979
// Recommended when using Java 8+ (about +50% faster than Timestamp), standards compliant format
// checked with jmh 1.15
java.time.Instant.ofEpochMilli(millis).toString(); // 2016-10-29T10:28:41.979Z发布于 2014-12-20 13:53:40
Apache的FastDateFormat类绝对是SimpleDateFormat的一个很好的替代方案。它是快速的,也是线程安全的(特别是在多线程服务器环境中有用)。所有模式都与SimpleDateFormat兼容(时区和某些年份模式除外)。
构造函数的摘要如下:
FastDateFormat(String pattern, TimeZone timeZone, Locale locale)
您可以在FastDateFormat上找到更多信息。
发布于 2014-12-20 15:50:07
最快的实现很可能是:
Long.toString(millis);如果性能是最重要的,那么您应该使用它。
实际上,我不想使用SimpleDateFormat,因为我认为它的灵活性带来了太多的开销。
根据一个快速的jmh基准,在我的笔记本电脑上,Long.toString每秒得到1200万次运算,SimpleDateFormat是200万次。
你的预算是多少?一旦你知道了,你就能决定哪一个是最合适的。
https://stackoverflow.com/questions/27579104
复制相似问题