如何在Java中将UTC时间戳转换为本地日,小时,分钟?

Jam*_*mes 3 java datetime

然后给出时间戳1245613885,这是GMT中的时间戳

如何使用服务器的本地时区信息将其转换为Java中的年,日,小时,分钟值?

Bal*_*usC 7

你可以用java.util.Calendar它.它提供了一种setTimeZone()方法(由于默认情况下它已经选择了系统默认时区,因此它是多余的).

long timestamp = 1245613885;
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getDefault());
calendar.setTimeInMillis(timestamp * 1000);

int year = calendar.get(Calendar.YEAR);
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
Run Code Online (Sandbox Code Playgroud)

如果您想将它呈现在人类可读日期字符串中,那么我建议SimpleDateFormat您这样做.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(calendar.getTime());
System.out.println(dateString); // 2009-06-21 15:51:25
Run Code Online (Sandbox Code Playgroud)

(根据我的时区GMT-4,输出是正确的)