获取当前时间的java语句_获取当前时间的Java代码

本问题已经有最佳答案,请猛点这里访问。

我正在java中搜索代码,以便将我的本地PC系统时间提取或同步到我的应用程序中。

试试这个:

import java.text.SimpleDateFormat;

import java.util.Calendar;

public class currentTime {

public static void main(String[] args) {

Calendar cal = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");

System.out.println( sdf.format(cal.getTime()) );

}

}

您可以按照自己喜欢的方式格式化SimpleDateFormat。有关您可以在java api中查看的任何其他信息:

的SimpleDateFormat

日历

无需调用cal.getTime()方法2次,它可能在格式化日期之后被赋值为字符串....... SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String loginTime = sdf.format(cal.getTime());

仅供参考,这里使用的麻烦类现在已经遗留下来,取而代之的是java.time类。

对于懒惰(oneliner,没有导入,只需复制粘贴它):new java.text.SimpleDateFormat("HH:mm:ss").format(java.util.Calendar.getInstance().getTime())

new java.util.Date()

System.currentTimeMillis()

会给你当前的系统时间。

TL;博士

Instant.now()  // UTC

…要么…

ZonedDateTime.now(

// Specify time zone.

ZoneId.of("Pacific/Auckland" )

)

细节

捆绑的java.util.Date / .Calendar类是众所周知的麻烦。避免他们。它们现在已经遗留下来,取而代之的是java.time框架。

相反,使用:

java.time

内置Java 8及更高版本。 Joda-Time的官方继任者。

支持Java 6& 7和Android。

Joda-Time

第三方库,开源,免费。

java.time

ZonedDateTime zdt = ZonedDateTime.now();

如果需要旧代码,请转换为java.util.Date。在Instant处进行,这是UTC时间轴上的一个时刻。

java.util.Date date = java.util.Date.from( zdt.toInstant() );

时区

最好明确指定所需/预期的时区,而不是隐式依赖JVM的当前默认时区。

ZoneId zoneId = ZoneId.of("America/Montreal" );

ZonedDateTime zdt = ZonedDateTime.now( zoneId );  // Pass desired/expected time zone.

乔达时间

仅供参考,Joda-Time项目现在处于维护模式,团队建议迁移到java.time类。

DateTime now = DateTime.now();

要从Joda-Time DateTime对象转换为java.util.Date以与其他类进行交互...

java.util.Date date = now.toDate();

在发布之前搜索StackOverflow。您的问题已经被问及并回答了。

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧遗留日期时间类,例如java.util.Date,Calendar和& SimpleDateFormat。

现在处于维护模式的Joda-Time项目建议迁移到java.time类。

要了解更多信息,请参阅Oracle教程。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。

从哪里获取java.time类?

Java SE 8,Java SE 9及更高版本

内置。

带有捆绑实现的标准Java API的一部分。

Java 9增加了一些小功能和修复。

Java SE 6和Java SE 7

许多java.time功能都被反向移植到Java 6& 7在ThreeTen-Backport。

Android的

更高版本的Android捆绑java.time类的实现。

对于早期的Android,ThreeTenABP项目采用ThreeTen-Backport(如上所述)。请参见如何使用ThreeTenABP ....

ThreeTen-Extra项目使用其他类扩展了java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的类,例如Interval,YearWeek,YearQuarter等。

09年5月7日之前,他的问题也得到了多次回答?

@skiwi(a)实际上,是的。这里。这里。 (b)但是,我没有注意到问题的年龄。

System.currentTimeMillis的()

其他一切都可以解决..例如new Date()调用System.currentTimeMillis()。

尝试这种方式,更高效和兼容:

SimpleDateFormat time_formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS");

String current_time_str = time_formatter.format(System.currentTimeMillis());

//Log.i("test","current_time_str:" + current_time_str);

只是为了告知更进一步的开发人员,谢天谢地,罗伯特布尔克,我只想在这个主题上添加我的石头。

如果您只想获得HH:MM:SS格式,请执行以下操作:

LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS);

干杯。

P.S。:这至少只适用于Java 8!

如上所述,你可以使用

Date d = new Date();

或使用

Calendar.getInstance();

或者如果你想要毫克

System.currentTimeMillis()

试试这个:

final String currentTime    = String.valueOf(System.currentTimeMillis());

不太确定你的意思,但你可能只需要

Date d = new Date();

新的Date()。getTime()被窃听。

Date date = new Date();

System.out.println(date);

System.out.println(date.getHours() +":" + date.getMinutes() +":" + date.getSeconds());

long t1 = date.getTime();

System.out.println((t1 / 1000 / 60 / 60) % 24 +":" + (t1 / 1000 / 60) % 60 +":" + (t1 / 1000) % 60);

long t2 = System.currentTimeMillis();

System.out.println((t2 / 1000 / 60 / 60) % 24 +":" + (t2 / 1000 / 60) % 60 +":" + (t2 / 1000) % 60);

它给我带来了错误的时间毫秒。 System.currentTimeMillis()也是。因为我要求Date实例告诉我相应的时间毫秒,它必须返回匹配的而不是来自不同时区的其他时间。有趣的是,弃用的方法是唯一返回正确值的方法。

我非常非常怀疑你对错误的主张。当然,除非您的系统时钟设置不正确。

你可以使用新的Date(),它会给你当前的时间。

如果您需要以某种格式表示它(通常需要这样做),那么请使用格式化程序。

DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en","EN"));

String formattedDate = df.format (new Date ());

要获得系统时间,请使用Calendar.getInstance()。getTime()

而且每次都应该获得Calendar的新实例以获得当前时间。

要从java代码更改系统时间,可以使用命令行

尝试这个来获取当前日期。您还可以使用getter获取当前的小时,分钟和秒:

new Date(System.currentTimeMillis()).get....()

我知道这是一个很老的问题。但是想澄清一下:

在当前版本的Java中被删除。建议的方法是使用日历对象。例如:

Calendar cal = Calendar.getInstance();

Date currentTime = cal.getTime();

我希望这将有助于将来可能提出这个问题的人。谢谢你们。

排名最高的答案已经有了日历版本。你的帖子究竟添加了什么?

是。但所有其他答案都谈到了被剥夺的构造函数。刚补充说明。谢谢。

不正确:不推荐使用Date()构造函数(从Java 8开始)。不推荐使用该类的其他方法,但不推荐使用该方法。实际上,您应该考虑将其弃用,而是使用Joda-Time或Java 8中的新java.time包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值