如何在java中以美国时区格式将字符串转换为日期

如何在java中以美国时区格式将字符串转换为日期,java,Java,如何在java中将字符串转换为美国时区格式的日期。我试图将字符串转换为美国时区格式的日期,但它总是采用IST格式 TimeZone tz = TimeZone.getTimeZone("US/Alaska"); SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z"); String date="Sun, 9 Mar 2014 02:00:00 EST"; Date d = null; try {

如何在java中将字符串转换为美国时区格式的日期。我试图将字符串转换为美国时区格式的日期,但它总是采用IST格式

TimeZone tz = TimeZone.getTimeZone("US/Alaska");
SimpleDateFormat sdf =  new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z");

String date="Sun, 9 Mar 2014 02:00:00 EST";

Date d = null;
try {
  d = sdf.parse(date);
} catch (ParseException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
System.out.println("date is"+d);
boolean inDs = tz.inDaylightTime(d);
System.out.println("inDs"+inDs);

打印日期时,请使用日历而不是日期。无论如何,下面将日期转换为日历并返回日期的解决方案是无效的。如果可以分别获取日、月、年等,最好使用
cal.set()


你的代码抛出了
java.text.ParseException:Unparseable date:“Sun,2014年3月9日02:00:00 EST”
。请正确查看输出,然后发布…@Nitul你能告诉我什么是问题吗
date
对象的可能副本没有时区概念。您看到的是
日期的默认
toString()
输出,它仅使用本地时区输出日期。
    TimeZone tz = TimeZone.getTimeZone("US/Alaska");
    SimpleDateFormat sdf = new SimpleDateFormat(
            "EEE, d MMM yyyy HH:mm:ss z");

    String date = "Sun, 9 Mar 2014 02:00:00 EST";

    Date d = null;
    try {
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(date));
        cal.setTimeZone(tz);
        System.out.println("date is " + cal.getTime());
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }