日历给我错误的时间和分钟

tyc*_*czj 3 android calendar

我试图让一个时间戳的时间,但我不断收到错误的时间,当我用Calendar.HOURCalendar.MINUTE,无论时间戳是它告诉我的时间是10分钟为12.

现在,当我使用Calendar.getTime()它给我正确的时间,所以我不明白?我只想以12小时格式和分钟获得小时

这是我如何去做

public static String getRealTime(long time){

            Calendar cal = Calendar.getInstance();
    Log.d("Calendar",String.valueOf(time));
    cal.setTimeInMillis(time);
    Date timeS = cal.getTime();
    String sTime = timeS.toString(); // gives correct time in 24hr format
    int hr = cal.HOUR;               // gives me 10 no matter what the timestamp is
    int min = cal.MINUTE;            // gives me 12 no matter what the timestamp is
    String dMin = getDoubleDigit(min);
    int ampm = cal.AM_PM;
    String m = new String();
    if(ampm == 0){
        m = "AM";
    }else{
        m="PM";
    }
    String rtime = String.valueOf(hr)+":"+dMin+" "+m;
    return rtime;
} 
Run Code Online (Sandbox Code Playgroud)

所以说时间戳是1316626200000cal.getTime()给了我Wed Sep 21 13:30:00 EDT 2011哪个是正确的时间,但cal.HOUR给了我10一小时显然不是它应该是什么.它为什么这样做?

Aus*_*ney 13

cal.HOUR并且cal.MINUTE是用于Calendar方法调用的静态最终整数.您将使用此代码来获得正确的结果:

   int hr = cal.get(Calendar.HOUR);
   int min = cal.get(Calendar.MINUTE);
Run Code Online (Sandbox Code Playgroud)

请注意,我调用的是HOURand MINUTE字段,Calendar而不是您的对象cal.从实例化对象调用静态成员是不好的做法.