繁体   English   中英

仅使用 currentTimeMillis() 来获取日期

[英]using only currentTimeMillis() to get the date

所以我完全迷路了。 我必须只使用currentTimeMillis()而没有其他任何东西打印出实际的日期和时间。 获取时间没问题:

long t = java.lang.System.currentTimeMillis();

long seconds = (t / 1000) % 60;
long minutes = (t / (1000 * 60)) % 60;
long hours = (t / (1000 * 60 * 60) % 24) + zone;

但是如何计算考虑闰年的日期?

编辑:这是家庭作业,因此这个奇怪的问题。 并且我们不允许使用除 currentTimeMillis() 之外的任何其他方法。 操作员等都很好。

如果不使用其他任何东西,就无法做到这一点。 您必须更清楚有哪些限制以及为什么? 这是家庭作业吗?

我能想到的最简单的方法是:

long t = java.lang.System.currentTimeMillis();
System.out.println(new Date(t));

但我相信这不是你所需要的。 请详细说明...

对于时区相关问题,可以使用以下修复程序。 然而,这只是一种情况:其他情况也需要处理。

//let's say time zone is +5:30
long zone = 6; //instead of 5, keeping value 6, thus added extra 30 minutes
long minuten = (t / (1000 * 60)) % 60;
long stunden = (t / (1000 * 60 * 60) % 24) + zone;
if(minuten < 30){ // this is to take care of the cases where hour has moved ahead
    stunden--;
    minuten+=30;
} else{
    minuten-=30; // else deduct those additional 30 minutes
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM