我有一个日期对象,我需要将其转换为登录用户的时区。问题是时区在我们的数据库中仅表示为 GMT 的字符串值加上或减去以小时为单位的偏移量。例如,纽约时间的“GMT”或“GMT-5”或“GMT+5”。
当我只有“GMT-3”或“GMT+5”之类的字符串时,如何将我的日期对象转换为用户的时间?
在此先感谢您的帮助。
最佳答案
一个例子应该有帮助,但它似乎是一个 1 字符 ISO 8601 time zone :
String myDate="2001-07-04T12:08:56GMT-3";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'GMT'X");
if (myDate.indexOf("GMT-") >= myDate.length() -1 -4) {
myDate = myDate.replace("-","-0");
}
if (myDate.indexOf("GMT+") >= myDate.length() -1 -4) {
myDate = myDate.replace("+","+0");
}
System.out.println(format.parse(myDate));
它应该可以工作。
yyyy-MM-dd'T'HH:mm:ss'GMT'X
符合 iso8601 时区myDate = myDate.replace("-","-0");
将日期调整为您的格式
关于java - 如何根据时区的字符串值转换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648923/