java currentmi_java - 如何在Java中以YYYY-MM-DD HH:MI:秒毫秒格式获取当前时间? - 堆栈内存溢出...

最简单的方法是(在Java 8之前)使用,

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

这将导致用户潜在的并发问题。 在这些现有设计中存在许多问题。 为了在Java 8中克服这些问题,我们有一个单独的包java.time 。

因此,在Java 8中,以下方法可以解决问题(格式化当前日期/时间),

LocalDateTime.now()

.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));

要注意的一件事是,它是在受欢迎的第三方图书馆joda-time的帮助下开发的,

该项目由Joda-Time(Stephen Colebourne)的作者和Oracle在JSR 310下共同领导,并将出现在新的Java SE 8包java.time中。

但是现在不赞成使用joda-time并要求用户迁移到新的java.time 。

请注意,从Java SE 8开始,要求用户迁移到java.time(JSR-310)-JDK的核心部分,该项目取代了此项目。

无论如何,

如果您有Calendar实例,则可以在下面使用它来将其转换为新的java.time ,

Calendar calendar = Calendar.getInstance();

long longValue = calendar.getTimeInMillis();

LocalDateTime date =

LocalDateTime.ofInstant(Instant.ofEpochMilli(longValue), ZoneId.systemDefault());

String formattedString = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));

System.out.println(date.toString()); // 2018-03-06T15:56:53.634

System.out.println(formattedString); // 2018-03-06 15:56:53.634

如果您有一个Date对象,

Date date = new Date();

long longValue2 = date.getTime();

LocalDateTime dateTime =

LocalDateTime.ofInstant(Instant.ofEpochMilli(longValue2), ZoneId.systemDefault());

String formattedString = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));

System.out.println(dateTime.toString()); // 2018-03-06T15:59:30.278

System.out.println(formattedString); // 2018-03-06 15:59:30.278

如果只有纪元毫秒,

LocalDateTime date =

LocalDateTime.ofInstant(Instant.ofEpochMilli(epochLongValue), ZoneId.systemDefault());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值