在Android中将服务器时间戳转换为本地日期时间

时间:2016-08-03 14:50:32

标签: android date

我知道这对许多人来说都是一个类似的问题,但我对我的代码中的错误感到困惑。

服务器有来自美国的时间戳,我住在印度。我希望将获取的时间戳转换为我的时区标准。 我使用以下代码块:

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

输出时间与输入时间相同。它为什么会出现? 我做错了什么的帮助?

1 个答案:

答案 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());
    }