日期:2014-05-20  浏览次数:20819 次

如何获取系统的精确到毫微秒的日期??
我查了下Timestamp的说明:

toString
public String toString()使用 JDBC 时间戳转义格式编排时间戳。yyyy-mm-dd hh:mm:ss.fffffffff,其中 ffffffffff 指示毫微秒。 

覆盖:
类 Date 中的 toString
返回:
使用 yyyy-mm-dd hh:mm:ss.fffffffff 格式的 String 对象
另请参见:
Date.toLocaleString(), Date.toGMTString()

我于是写了个测试:
  Timestamp t= new Timestamp(System.currentTimeMillis()); 
  Date date= new Date(t.getTime());
  DateFormat format = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss.fffffffff");

  然后输出 format.format(date).toString();

竟然提示说 DateFormat format = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss.fffffffff"); 有错,
不认识这种格式。和解啊?

而直接输出 t.toString() 结果是精确到秒之后三位。

------解决方案--------------------
DateFormat format = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss.fffffffff");

DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.fffffffff");
------解决方案--------------------
你看 SimpleDateFormat 的文档

引用Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00