Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何转换系统&x27;s时区到用户';s时区_Java_Timezone - Fatal编程技术网

Java 如何转换系统&x27;s时区到用户';s时区

Java 如何转换系统&x27;s时区到用户';s时区,java,timezone,Java,Timezone,我有一个来自我的应用程序的时间戳值。用户可以在任何给定的本地时区 此日期用于Web服务,并且无论用户所在的时区是什么,系统总是选择服务器时区(位于美国),我需要将参数从系统的转换为用户的。 我尝试过这种方法: /** * Adapt calendar to client time zone. * @param calendar - adapting calendar * @param timeZone - client time zone * @return ada

我有一个来自我的应用程序的时间戳值。用户可以在任何给定的本地时区

此日期用于Web服务,并且无论用户所在的时区是什么,系统总是选择服务器时区(位于美国),我需要将参数从系统的转换为用户的。 我尝试过这种方法:

/**
  * Adapt calendar to client time zone. 
  * @param calendar - adapting calendar   
  * @param timeZone - client time zone   
  * @return adapt calendar to client time zone   
*/  
public static Calendar convertCalendar(final Calendar calendar, 
                                       final TimeZone timeZone){
   Calendar ret = new GregorianCalendar(timeZone); 
   ret.setTimeInMillis(calendar.getTimeInMillis() +
     timeZone.getOffset(calendar.getTimeInMillis()) -
     TimeZone.getDefault().getOffset(calendar.getTimeInMillis())); 
   ret.getTime();      
   return ret; 
 }   
我的计算机上显示了一个语法错误,说明声明“public static Calendar convertCalendar(Calendar Calendar,TimeZone timeone)”存在语法问题

我正在使用JDK1.3。我不知道我错过了什么


有谁能提高我对这个概念的理解吗?

事实上,简单地获得一个日历对象,它具有相同的原始时间值,但位于不同的时区,甚至比这更简单

Calendar ret = Calendar.getInstance(timeZone);
ret.setTime(calendar.getTime());
return ret;
但我不确定这是否足以满足你的需要。无论何时输入或输出该日历(或其日期),标准JavaAPI都会自动将该值转换回本地时间。JDBC语句(尽管这也可能取决于您特定的JDBC驱动程序)、toString()等。例如,您可能需要实际使用带有时区的DateFormat,而不是设置日历的时区

如果您的Web服务引擎正在自动将传入的“日期”类型字段转换为日历,您可能会在那里有一些选项,特别是如果字段的类型是真正的日期格式而不是普通字符串

如果不知道如何使用此时区转换日历,很难说得更多。

添加完整的编译器错误解释。