【发布时间】:2017-10-17 15:01:31
【问题描述】:
我有一个格式为 “2017-05-17 00:31:16.227” 的日期,我需要将其转换为 “17-MAY-17 12.31.16.227000000 AM” 。
String convertTimestamp(Timestamp date) {
String newstring = null;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSSSSS");
java.util.Date date1 = dateFormat.parse(date.toString());
DateFormat sdf = new SimpleDateFormat("dd-MMM-yy hh.mm.ss.SSSSSSSSS aa");
newstring = sdf.format(date1);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("new string" + newstring);
return newstring;
}
但我得到的值是这样的 **"17-MAY-17 12.31.16.000000227 AM"
【问题讨论】:
-
只需使用
yyyy-MM-dd hh:mm:ss.SSS000000。 -
日期可以是这样的 2017-05-17 00:31:16.227111(纳秒内最多 6 个字符)@DawoodibnKareem
-
祝你好运,把它变成
java.util.Date。 -
九位小数表示纳秒,而不是标题中提到的微秒。微秒将是 六 位小数。
-
@BasilBourque 从来都不是中午。 24 小时制中的 00 和 12 小时制中的 12am 均指午夜。问题的这个方面是完全正确的。 12 小时制时钟在一天中的两个半小时从 01 运行到 12,并且没有 00 这样的东西。