在 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 中生成当前时间戳的主要内容,如果未能解决你的问题,请参考以下文章