在 Java 中生成当前时间戳

Posted

技术标签:

【中文标题】在 Java 中生成当前时间戳【英文标题】:Generate a current datestamp in Java 【发布时间】:2010-09-11 01:50:08 【问题描述】:

在 Java 中生成当前日期戳的最佳方法是什么?

YYYY-MM-DD:hh-mm-ss

【问题讨论】:

“不使用数据库时”?什么??您通常会查询数据库以检索当前时间吗? 您想要那种格式的字符串还是某种时间戳/日期对象? JohnMilikan:虽然效率低下,但您可以从 sysibm.sysdummy1 中选择当前日期(那是 DB2 变体,我不记得 Oracle 的虚拟表叫什么)。不过你是对的,我不会这样做。 我想说的是,当我将我写出的数据写入表格时,它没有为我加上时间戳。我也不想使用来自外部供应商的语言包。非常感谢您的帮助。以后我也会尽量让我的问题更简洁一些。干杯。 【参考方案1】:
Date d = new Date();
String formatted = new SimpleDateFormat ("yyyy-MM-dd:HH-mm-ss").format (d);
System.out.println (formatted);

【讨论】:

【参考方案2】:

SimpleDateFormatter 是您想要的。

【讨论】:

【参考方案3】:

还有

long timestamp = System.currentTimeMillis() 

这是new Date() (@John Millikin) 在内部使用的。一旦你有了它,你可以随意格式化它。

【讨论】:

【参考方案4】:
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:hh-mm-ss");

formatter.format(new Date());

JavaDoc for SimpleDateFormat 提供有关日期和时间模式字符串的信息。

【讨论】:

【参考方案5】:

使用标准 JDK,您将需要使用 java.text.SimpleDateFormat

Date myDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
String myDateString = sdf.format(myDate);

但是,如果您可以选择使用 Apache Commons Lang 包,则可以使用 org.apache.commons.lang.time.FastDateFormat

Date myDate = new Date();
FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd:HH-mm-ss");
String myDateString = fdf.format(myDate);

FastDateFormat 具有线程安全的优点,因此您可以在整个应用程序中使用单个实例。它严格用于格式化日期,不支持像 SimpleDateFormat 在以下示例中所做的解析:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
Date yourDate = sdf.parse("2008-09-18:22-03-15");

【讨论】:

从 3.2 开始,FastDateFormat 支持解析:)

以上是关于在 Java 中生成当前时间戳的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中生成随机时间戳?

java从时间戳怎么得到当前时间

iOS 时间以及时间戳的各种方法

如何利用PHP时间戳获取当前时间

Java 如何获得 Unix 时间戳

jsp怎么把当前时间(java中数据类型)转换成能在mysql中保存的时间戳(int(11))