我正在创建web应用程序,在那里我需要存储时间戳/日期。
问题是我在一个托管站点上托管了我的站点,并且托管站点是基于美国的。当数据被存储时,美国的时间是存储的,而不是我自己国家的时间。
我相信我需要把托管服务器的时间设置为我的国家时间,或者我需要在节省之前转换时间。我尝试了很少的代码,但我没有得到。
有谁能帮我转换一下java的时间吗?
当我打印
System.out.println(new Date());我得到的是我们的时间,而不是现在的时间。我需要转换这一次,以显示我的国家时间,即科威特的时间。
编辑1
当我以System.out.println(new Date());格式打印日期时,输出为Thu Sep 06 11:07:49 EDT 2012,这意味着我得到了服务器时间。
现在我想把这个时间转换成某个国家的时间,比方说科威特或者任何其他国家,也就是同一时间,应该显示为现在的国家。
即科威特国的时间应为Thu Sep 06 19:07:49 AST 2012
对印度来说应该是Thu Sep 06 21:37:49 IST 2012
编辑2
的问题,用词更好,,,希望,所以
我使用JSF创建了一个web应用程序,我的服务器位于美国。我正在将timestamp存储在数据库中。现在,在打印时间时,我显然会得到DB中的时间,即美国数据。
我正在准备报告,我想在那里显示数据与时间。
+++++++++++++++++++++++++++++++++++
+ Name + Time +
+++++++++++++++++++++++++++++++++++
+ Name 1 + 10/09/2012 10:11 +
+ Name 2 + 10/09/2012 21:11 +
+ Name 3 + 10/09/2012 17:11 +
+++++++++++++++++++++++++++++++++++现在的问题是,这些时间是按照美国的时间安排的,所以我需要把美国的时间转换成我所在的国家时间。我需要显示这一次我访问互联网的地方,即如果我在科威特,我需要按照科威特的时间表。如果我在迪拜访问这些数据,我需要按照迪拜的时间显示报告。
有人能帮我解决这些问题吗?
发布于 2012-09-07 16:24:03
如果您使用的是时间操作,那么您应该使用一个日历对象来获取一个带有Calendar#getInstance( timezone )静态方法的实例,为您提供一个与您的时区相对应的TimeZone对象。
如果必须打印带有定义时区的Date对象,请获取DateFormat对象并将其时区设置为与您喜欢的时区相对应的时区。
以下是一个示例:
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy.MM.dd G 'at' HH:mm:ss z", Locale.UK);
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+1:00")); //London?
String fullDateUK = dateFormat.format(new Date());
System.out.println(fullDateUK);发布于 2012-09-07 16:12:13
java.util.Date应该总是给你世界协调时间。当您将其放入对println的调用中时,就会将其转换为本地时间(代码正在执行的地方),因为对.println()的调用中有对.println()的隐式调用。
请确保将日期存储为原始值,并且在此过程中没有调用.toString() (例如DB将其转换为分阶段时间戳时),等等。
Jon (在我提到的答案中)还建议可能使用一个替代的datetime包,这并不是您想要的,但至少可以提供一些替代的方法来处理这个问题。
发布于 2012-09-07 16:18:49
您可能需要查看与日期相关的国际化项目。这里有一个很好的链接,可能有助于获得一些开始。国际化
https://stackoverflow.com/questions/12321667
复制相似问题