我应该使用什么格式来获取所需的输出
输入" 2016-04-01T16:23:19.8995" o / p = 2016-04-01T16:23:19.900因此.8995在输出中四舍五入为.900
3.类似于输入" 2016-04-01T16:23:19.9995"预期产量为2016-04-01T16:23:20.000未达到预期产量
公共课日期{
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSSS");
System.out.println(sdf.parse("2016-04-01T16:23:19.9995"));
}
}
答案 0 :(得分:1)
S
, S
都意味着毫秒。
如果你想要这种行为,我建议你
在Java 8中使用DateTime库。
String dateTime = "2016-04-01T16:23:19.8995";
LocalDateTime localDateTime = LocalDateTime.parse(dateTime);
System.out.println(localDateTime);
打印
2016-04-01T16:23:19.899500
如果你想围绕它可以做到。
LocalDateTime inMillis = localDateTime.plusNanos(500_000).truncatedTo(ChronoUnit.MILLIS);
System.out.println(inMillis);
打印
2016-04-01T16:23:19.900
答案 1 :(得分:1)
在Java 8中,您可以使用java.time.LocalDateTime
。
LocalDateTime time = LocalDateTime.parse("2016-04-01T16:23:19.9995");
System.out.println(time); //gives 2016-04-01T16:23:19.999500 as output
LocalDateTime应至少为您提供所需的格式。 正如彼得回答的那样,无论你使用多少S,S都是毫秒。