我今天一直试图找到这个问题的答案,并且有太多相互矛盾的信息....
我想要做的是在android中获取当前的unix时间戳,然后将其转换为允许我使用getHours()和getMinutes()的格式。
我目前正在这样做:
int time = (int) (System.currentTimeMillis());
Timestamp ts = new Timestamp(time);
mHour = ts.getHours();
mMinute = ts.getMinutes();
但它并没有给我一个正确的小时或分钟值(它在当前东海岸时间13:33返回03:38)。
答案 0 :(得分:9)
这有效:
final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
Date date = cal.getTime();
mHour = date.getHours();
mMinute = date.getMinutes();
答案 1 :(得分:8)
只需使用Java Calendar类。
Calendar c = new GregorianCalendar(); // This creates a Calendar instance with the current time
mHour = c.get(Calendar.HOUR);
mMinute = c.get(Calendar.MINUTE);
另请注意,您的Android模拟器将返回GMT当前时间。我建议在真实设备上测试这种类型的代码。
答案 2 :(得分:2)
答案 3 :(得分:2)
int time = (int) (System.currentTimeMillis());
这里你应该使用 long 而不是 int 。
答案 4 :(得分:0)
使用T ime类表格Google最适合此类工作,特别是它的性能不如日历。