获取当前时间的Java代码
我正在searchjava代码来获取或同步我的本地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
日历
都
 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的官方接class人。
 被移植到Java 6&7和Android 。
-   乔达时间 
 第三方库,开源,免费。
java.time
 ZonedDateTime zdt = ZonedDateTime.now(); 
 如果需要旧代码,请转换为java.util.Date。 在UTC时间线上的瞬间Instant通过。 
 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. 
乔达时间
 DateTime now = DateTime.now(); 
将Joda-Time DateTime对象转换为与其他类互操作的java.util.Date …
 java.util.Date date = now.toDate(); 
searchStackOverflow。 你的问题已经被问及多次回答。
System.currentTimeMillis的()
所有其他的工作。例如新的date()调用System.currentTimeMillis()。
就像上面说的,你可以使用
 Date d = new Date(); 
或使用
 Calendar.getInstance(); 
或者如果你想在毫秒
 System.currentTimeMillis() 
不确定你的意思,但你可能只是需要
 Date d = new Date(); 
你可以使用新的Date(),它会给你当前的时间。
如果您需要以某种格式表示它(通常您需要这样做),然后使用格式化程序。
 DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en", "EN")); String formattedDate = df.format (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); 
 它返回我错误的时间millis。  System.currentTimeMillis()也是如此。 由于我要求Date 实例告诉我相应的时间毫秒,它必须从不同的时区返回匹配的时间。 有趣的是,不赞成使用的方法是唯一返回正确值的方法。 
试试这样,更高效和兼容 :
 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); 
要获取系统时间,请使用Calendar.getInstance()。getTime()
并且您应该每次都获取Calendar的新实例以获得当前时间。
要从Java代码更改系统时间,您可以使用命令行
只是为了让更多的开发人员知道,并且感谢Basil Bourque,我只是想为这个话题添砖加瓦。
如果你只是想得到HH:MM:SS格式,那么这样做:
 LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS); 
干杯。
PS:这只会在Java 8中起作用!
我知道这是一个相当古老的问题。 但是想澄清一下:
 Date d = new Date() 
在当前版本的Java中被描述。 推荐的方法是使用日历对象。 例如:
 Calendar cal = Calendar.getInstance(); Date currentTime = cal.getTime(); 
我希望这将有助于将来可能提及这个问题的人。 谢谢你们。
试试这个来得到当前的date。你也可以通过使用getters获得当前的小时,分钟和秒钟:
 new Date(System.currentTimeMillis()).get....() 
尝试这个:
 final String currentTime = String.valueOf(System.currentTimeMillis());