我正试图在没有方法的情况下做这件事,以便更好地掌握这个概念。
我真的很亲近。我的数学课似乎没时间了。我有什么不明白的?
static void showCurrent(){
Date today = new Date();
long milliseconds = today.getTime(); // ex: 1651773923837
long seconds = milliseconds / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long s = seconds % 60;
long m = minutes % 60;
long h = hours % 24;
System.out.printf("Date: %s, Time: %d\n", today.toString(), milliseconds);
System.out.println(h + ": " + m + ": " + s );输出:
Date: Fri May 06 10:13:21 EDT 2022, Time: 1651846401839
14: 13: 21发布于 2022-05-06 15:07:42
LocalDateTime.now()方法返回LocalDateTime类的实例,因此如果您打印LocalDateTime类的实例,它将打印当前时间和时间。为了获得正确的格式,您需要使用JDK1.8中包含的DateTimeFormatter类格式化当前日期
import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
public class CurrentDateTime {
public static void main(String[] args) {
DateTimeFormatter date_wanted = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(date_wanted.format(now));
}
} 发布于 2022-05-06 14:29:13
根据Javadoc关于日期:getTime的说法
返回由此Date对象表示的自1970年1月1日以来的毫秒数: 00:00:00
重要的部分是"GMT“,它不同于您的时区: EDT,它是.格林尼治时间- 4:00
发布于 2022-05-06 14:50:38
避免遗留日期-时间类
toString方法在java.util.Date上有一个不幸的反特性,就是在生成文本时应用JVM`s当前的默认时区。
永远不要使用Date。几年前被现代的java.time类所取代。
Instant
捕捉当前的时刻。
Instant instant = Instant.now() ;生成标准ISO 8601格式的文本。
String output = instant.toString() ;从1970年第一时刻的划时代参考数起计算毫秒数,从世界协调时的零时-分-秒,1970年-01-01T00:00Z的偏移来看。
long millis = instant.toEpochMilli() ;https://stackoverflow.com/questions/72143078
复制相似问题