Java SimpleDataFormate.parse方法不分析所选时区
输出:Java SimpleDataFormate.parse方法不分析所选时区,java,simpledateformat,Java,Simpledateformat,输出: private String target_time_zone = "Australia/Hobart"; private String format = "MM/dd/yyyy HH:mm:ss z"; public static void main(String args[]) throws ParseException { Date date = Calendar.getInstance().getTime(); TZForm
private String target_time_zone = "Australia/Hobart";
private String format = "MM/dd/yyyy HH:mm:ss z";
public static void main(String args[]) throws ParseException {
Date date = Calendar.getInstance().getTime();
TZFormat tzFormat = new TZFormat();
System.out.println("Converted TZ Date: "+ tzFormat.TZF(date));
}
public Date TZF(Date dt) throws ParseException {
TimeZone tz = TimeZone.getTimeZone(target_time_zone);
SimpleDateFormat date_format_gmt = new SimpleDateFormat(format);
date_format_gmt.setTimeZone(tz);
SimpleDateFormat date_format_gmt1 = new SimpleDateFormat(format);
date_format_gmt1.setTimeZone(tz);
System.out.println("formated value: "+ date_format_gmt.format(dt));
return date_format_gmt1.parse(date_format_gmt.format(dt));
}
实际上,我的要求是我想用格式将日期转换为目标时区,并返回转换后的日期
formated value: 11/15/2012 03:16:11 EST
Converted TZ Date: Wed Nov 14 21:46:11 IST 2012
在TZF方法中,格式(dt)是将日期格式化为给定时区的,当我们解析该值时,它显示以前的值(实际时间)
如何获取具有选定时区的日期对象。
Date
对象始终以毫秒(历元时间)表示时间,它不包含任何时区信息。当您设置格式并将其设置为字符串时,只有它以指定时区的所需格式打印。日期没有时区。你能重新措辞你的问题吗?
private String target_time_zone = "Australia/Hobart";
private String format = "MM/dd/yyyy HH:mm:ss z";