从时间选择器中选择不同时区的时间

时间:2012-02-02 07:02:55

标签: android

我有将选定的小时和分钟转换为国家/地区的不同时区的问题。 假设我选择在印度上午10点,那么我想知道在印度上午10点在美国/纽约和东京的时间。反之亦然。

任何帮助都很明显...... 谢谢

5 个答案:

答案 0 :(得分:3)

请找到以下解决方案:

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mma");
    TimeZone timezone = TimeZone.getDefault();
    TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
    Date d = new Date();
    sdf.setTimeZone(timezone);
    String strtime = sdf.format(d);
    Log.e("str time gmt  ",strtime);
    sdf.setTimeZone(utcTimeZone);
     strtime = sdf.format(d);
    Log.e("str time utc ",strtime);

我认为这将解决您的问题

答案 1 :(得分:2)

您可以使用Joda Time - Java date and time API。您可以获取DateTimeZone,具体取决于Joda时间中定义的Canonical ID

DateTimeZone zone = DateTimeZone.forID("Asia/Kolkata");

Joda Time有一个完整的list of Canonical ID,您可以从中获取TimeZone,具体取决于Canonical ID。

所以,如果你想在这个时刻到纽约当地时间,你会做以下事情

    // get current moment in default time zone
    DateTime dt = new DateTime();
    // translate to New York local time
    DateTime dtNewYork = dt.withZone(DateTimeZone.forID("America/New_York"));

如需了解更多信息,请参阅Changing TimeZone

答案 2 :(得分:1)

尝试使用Joda-Time library 检查org.joda.time.DateTimeZone class

Here是相同的API文档。

答案 3 :(得分:1)

你也可以使用它,不需要外部API

DateFormat format = new SimpleDateFormat("MMMMM d, yyyy, h:mm a");
TimeZone utc = TimeZone.getTimeZone("America/New_York");
System.out.println(utc.getID());
GregorianCalendar gc = new GregorianCalendar(utc);
Date now = gc.getTime();
System.out.println(format.format(now));

您可以在Link

上看到更多时区

输出

美国/纽约

2012年12月29日上午11:04

如果您不知道城市名称,那么您也可以按区域名称使用它,如下所示

DateFormat format = new SimpleDateFormat("MMMMM d, yyyy, h:mm a");
TimeZone cst = TimeZone.getTimeZone("US/Eastern");
System.out.println(cst.getID());
GregorianCalendar gc = new GregorianCalendar(cst);
Date now = gc.getTime();
format.setTimeZone(cst);
System.out.println(format.format(now))

<强>输出

US /东部

2012年12月29日,上午12:38

答案 4 :(得分:0)

我不确定我将要提供的解决方案,但我认为你可以尝试一下。 GMT(格林威治标准时间)是一个标准。我认为你可以把它作为基础并计算所需的时间。 GMT标准也很容易获得。

例如:在安装Windows XP或Windows 7等操作系统时,我们从下拉菜单中选择时间。我的观点是,以此为基础,您可以根据需要在NY-US和Tokyo-Japan之间找到时区之间的差异,反之亦然。

希望这有帮助。