public static String getDateTime(long timestamp) {
int[] days = new int[]{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year = 1970;
int month = 1;
int day = 1;
int hour = 0;
int minute = 0;
int second = 0;
timestamp /= 1000;
second = (int) (timestamp % 60);
timestamp /= 60;
minute = (int) (timestamp % 60);
timestamp /= 60;
timestamp += 8;
hour = (int) (timestamp % 24);
timestamp /= 24;
int a = 365 + 365 + 366 + 365;
int[] yearArray = new int[]{365, 365, 366, 365};
int b = (int) (timestamp / a);
year += b * 4;
timestamp -= a * b;
int i = 0;
for (; i < 4; i++) {
if (timestamp >= yearArray[i]) {
year++;
timestamp -= yearArray[i];
} else {
break;
}
}
//2100
if (year >= 2100) {
// 2300
int c = (year - 2100) % 100;
int d = (year - 2100) / 100;
if (c > 0) {
d++;
}
int e = d % 4;
timestamp += (d / 4 * 3 + e);
while (true) {
int f = 365;
if ((year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {
f = 366;
}
if (timestamp >= f) {
year++;
timestamp -= f;
} else {
break;
}
}
}
for (int j = 1; j <= 12; j++) {
if (timestamp >= days[j]) {
timestamp -= days[j];
month++;
}
}
day += timestamp;
return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
}
时间戳转北京时间
最新推荐文章于 2023-11-09 15:06:39 发布