java - 如何根据用户时区获取日历日期和时间

标签 java

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

面临的问题:

  1. 打印“cal”对象时,根据时区获取日期和时间。

  2. cal.getTime() 未按照时区显示日期和时间。

最佳答案

您应该以 UTC (java.util.Date) 表示时间,然后以用户的本地时区显示时间。使用 DateFormatTimeZone 来做到这一点。 Read this article了解更多详情

关于java - 如何根据用户时区获取日历日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670906/

相关文章:

java - 如何告诉 Jackson 将子元素设为顶级元素

java - 如何使输入在一行上读出多个整数?

@Asynchronous bean 中的 Java 注入(inject)

java接口(interface)继承冲突方法

java - 有没有办法将 java arraylist 对象复制到代码模型生成的源中?

java - AOP编程——ProceedingJoinPoint只支持around advice

java - 在异常 block 中处理异常

java - 学习多线程Java爬虫的好起点

java - 无法使用公司代理后面的 Jsoup 连接到网站

java - 在 Windows Server 2012 中为 Tomcat 7.0 设置堆大小(以 GB 为单位)