Java 如何以编程方式设置日历事件的时区?

Java 如何以编程方式设置日历事件的时区?,java,android,Java,Android,在android应用程序中,插入日历事件时,如何设置插入日历事件的时区。非常感谢您提供的任何帮助。您可以创建日历实例 public static Date getDate(Date date,TimeZone zone){ Calendar cal= Calendar.getInstance(zone); cal.setTimeInMillis(date.getTime()); Calendar output = Calendar.getInstance();

在android应用程序中,插入日历事件时,如何设置插入日历事件的时区。非常感谢您提供的任何帮助。

您可以创建日历实例

 public static Date getDate(Date date,TimeZone zone){

   Calendar cal= Calendar.getInstance(zone);  
    cal.setTimeInMillis(date.getTime());  

    Calendar output = Calendar.getInstance();  

    output.set(Calendar.DAY_OF_MONTH, first.get(Calendar.DAY_OF_MONTH)); 
    output.set(Calendar.MONTH, first.get(Calendar.MONTH));
    output.set(Calendar.YEAR, first.get(Calendar.YEAR)); 
    output.set(Calendar.HOUR_OF_DAY, first.get(Calendar.HOUR_OF_DAY));  
    output.set(Calendar.MINUTE, first.get(Calendar.MINUTE));  
    output.set(Calendar.SECOND, first.get(Calendar.SECOND));  
    output.set(Calendar.MILLISECOND, first.get(Calendar.MILLISECOND));  

    return output.getTime();

}

是否获取当前位置的时区?传递的日期是UTC,传递的时区是所需的时区。此方法将UTC中的日期更改为其他时区。通过减去当前位置时区的偏移量,可以获得UTC格式的日期。TimeZone userTimeZone=TimeZone.getTimeZone(usertimeZoneId);返回新日期(userdate.getTime()-userTimeZone.getRawOffset());使用getDefault()获取时区