我尝试将日期时区转换为另一个时区,我尝试使用以下代码进行转换,但它不起作用。
我正在使用JDK 1.3。我的目标是同时“在2015年5月6日星期五10:08:54 BST”,但有一个不同的时区标记。所以我的预期输出是:“5月6日星期五10:08:54 IST 2015”。我不想计算差异。
我的代码:
public static void main(String[] args) {
try{
Test obj= new Test();
String date="Wed May 6 10:08:54 BST 2015";
System.out.println("Given Date = "+date);
Date dt=obj.getServerDate(date);
System.out.println("Returned Date = "+dt);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public Date getServerDate(String str_date)
{
if (str_date == null)
return null;
Date pars_date = null;
try
{
DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy", Locale.ENGLISH);
pars_date = sdf.parse(str_date);
sdf.setTimeZone(TimeZone.getTimeZone("IST"));
}
catch(Exception e)
{
System.out.println(e);
}
return pars_date;
}
当我执行上面的代码时,我得到了以下输出:
Given Date = Wed May 6 10:08:54 BST 2015
Returned Date = Wed May 06 14:38:54 IST 2015
返回的日期不匹配,我尝试了很多来解决这个问题,但我做不到。分享您的想法以解决此问题。
注意:我不想要Joda Time日历 提前谢谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
如果要在不更改时间/日期的情况下更改时区而不想使用Joda,则需要先将字符串解析为日期对象,然后使用旧日期对象重建新日期对象但注入你自己的时区。更改日期格式化程序上的时区也会更改时间/日期。