我知道这对许多人来说都是一个类似的问题,但我对我的代码中的错误感到困惑。
服务器有来自美国的时间戳,我住在印度。我希望将获取的时间戳转换为我的时区标准。 我使用以下代码块:
SimpleDateFormat formatter = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
Date date = formatter.parse(serverDate); //Server Date
SimpleDateFormat sdfIndia = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
TimeZone tzInIndia = TimeZone.getDefault();
sdfIndia.setTimeZone(tzInIndia);
String sDateInIndia = sdfIndia.format(date); //Date Output in String Format
输出时间与输入时间相同。它为什么会出现? 我做错了什么的帮助?
答案 0 :(得分:0)
以下代码将在美国/东部和亚洲/迪拜时区打印日期时间。
Date today = new Date();
DateFormat formatter= new SimpleDateFormat("dd-M-yyyy hh:mm:ss a");
formatter.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
System.out.println("US/Eastern Time: " + formatter.format(today));
formatter.setTimeZone(TimeZone.getTimeZone("Asia/Dubai"));
System.out.println("Asia/Dubai Time: " + formatter.format(today.getTime()));
此帖发布时的输出:
美国/东部时间:03-8-2016 11:18:05 AM
亚洲/迪拜时间:03-8-2016 07:18:05 PM
时区ID"美国/东部"和#34;亚洲/迪拜"来自
String[] ids = TimeZone.getAvailableIDs();
for (String id : ids) {
System.out.println(TimeZone.getTimeZone(id).getID());
}