获取当前时间的Java代码

获取当前时间的Java代码,java,time,Java,Time,我正在java中搜索代码,以便将本地PC系统时间提取或同步到我的应用程序中。不太清楚您的意思,但您可能只需要 Date d = new Date(); 两者 new java.util.Date() 及 System.currentTimeMillis() 将为您提供当前系统时间。如上所述,您可以使用 Date d = new Date(); 或使用 Calendar.getInstance(); 或者如果你想用毫厘 System.currentTimeMillis() 要获取系统时间,

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

不太清楚您的意思,但您可能只需要

Date d = new Date();
两者

new java.util.Date()

System.currentTimeMillis()


将为您提供当前系统时间。

如上所述,您可以使用

Date d = new Date();
或使用

Calendar.getInstance();
或者如果你想用毫厘

System.currentTimeMillis()

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

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

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

您可以使用new Date(),它将为您提供当前时间

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

DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en", "EN"));
String formattedDate = df.format (new Date ());
System.currentTimeMillis()

其他一切都是这样的。。例如new Date()调用System.currentTimeMillis()。

尝试以下操作:

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()) );
    }

}
您可以按自己喜欢的方式格式化SimpleDataFormat。有关任何其他信息,请查看java api:

新建日期()。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);

它给了我错误的时间毫秒<代码>系统.currentTimeMillis()也是。因为我要求Date实例告诉我相应的时间毫秒,所以它必须返回匹配的时间毫秒,而不是来自不同时区的其他时间毫秒。有趣的是,不推荐的方法是唯一返回正确值的方法。

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

Date d = new Date() 
在当前版本的Java中,价格降低。建议使用日历对象。例如:

Calendar cal = Calendar.getInstance();
Date currentTime = cal.getTime();
我希望这将有助于将来可能提到这个问题的人。谢谢大家。

tl;博士 ……或者

ZonedDateTime.now(
    // Specify time zone.
    ZoneId.of( "Pacific/Auckland" )
)  
细节 捆绑的
java.util.Date
/
.Calendar
类是出了名的麻烦。避开它们。它们现在是遗产,被框架所取代

相反,请使用以下任一选项:


  • 内置Java 8及更高版本。乔达时代的正式继承人。
    后端口和

  • 第三方库,开源,免费
java.time 如果旧代码需要,请转换为java.util.Date。浏览中时间轴上的某个时刻

时区 最好显式地指定,而不是隐式地依赖JVM的

乔达时间 仅供参考,该项目目前正在进行中,团队建议迁移到类

要将Joda Time对象转换为java.util.Date,以便与其他类交互操作

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

投递前搜索StackOverflow。你的问题已经被提出并回答了


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android,该项目采用了ThreeTen Backport(如上所述)。看


该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在此处找到一些有用的类,如、、和。

尝试使用此方法获取当前日期。您还可以使用getter获取当前小时、分钟和秒:

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

尝试这种方式,效率更高,兼容性更强:

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);

为进一步的开发者提供信息,感谢Basil Bourque,我只想把我的石头添加到这个主题中

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

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

附言:这将至少在Java8中起作用

试试这个:

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

得票最多的答案已具有日历版本。你的帖子到底增加了什么?是的。但是所有其他的回答者都在谈论这个定价不高的构造函数。只是补充了一点澄清。谢谢。错误:构造函数没有被弃用(从Java8开始)。该类上的其他方法已弃用,但不是该类。实际上,你应该考虑它被贬低,而不是使用java 8中的任何一个或新的。他的问题在09 5月7日之前也回答了很多次吗?@斯基维(A)实际上,是的…(b) 但是,我没有注意到问题的年龄。无需调用cal.getTime()方法2次,它可以在格式化日期后分配给string,如下所示…….SimpleDateFormat sdf=new SimpleDateFormat(“HH:mm:ss”);字符串loginTime=sdf.format(cal.getTime());仅供参考,这里使用的麻烦类现在是遗留类,被java.time类所取代。对于懒惰类(oneliner,无需导入,只需复制粘贴):
new java.text.simpleDataFormat(“HH:mm:ss”).format(java.util.Calendar.getInstance().getTime())
我非常怀疑你所说的bug。当然,除非您的系统时钟设置不正确。
java.util.Date date = now.toDate();
new Date(System.currentTimeMillis()).get....()
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);
LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS);
final String currentTime    = String.valueOf(System.currentTimeMillis());