Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("PST"));
cal.setTime(new Date());
System.out.println("cal:"+cal);
System.out.println("cal.getime:"+cal.getTime());
输出为:
cal:java.util.GregorianCalendar[时间=1325177592164,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="PST",offset=-28800000 ,dstSavings=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleTimeZone[id=PST,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2, startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1, ERA=1,年=2011,月=11,WEEK_OF_YEAR=53,WEEK_OF_MONTH=5,DAY_OF_MONTH=29,DAY_OF_YEAR=363,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,小时=8,HOUR_OF_DAY=8,分钟= 53,秒=12,毫秒=164,ZONE_OFFSET=-28800000,DST_OFFSET=0]
cal.getime:12 月 29 日星期四 22:23:12 IST 2011
面临的问题:
打印“cal”对象时,根据时区获取日期和时间。
cal.getTime()
未按照时区显示日期和时间。
最佳答案
您应该以 UTC (java.util.Date) 表示时间,然后以用户的本地时区显示时间。使用 DateFormat
和 TimeZone
来做到这一点。 Read this article了解更多详情
关于java - 如何根据用户时区获取日历日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670906/