0

我有一个日期,我从这样的 EST 格式的服务器获得

05/07/2012 16:55:55去月/日/年然后时间

如果手机不在 EST 中,我如何将其转换为手机所在的时区?

如果我以毫秒为单位获得时间,那将没问题,但我没有

编辑:

好的,现在格式化时时间不正确

                String sTOC = oNewSTMsg.getAttribute("TOC").toString();
                String timezoneID = TimeZone.getDefault().getID();
                DateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
                format.setTimeZone(TimeZone.getTimeZone("EST"));
                String newtimezoneID = TimeZone.getDefault().getID();
                Date timestamp = null;
                try{
                    timestamp = format.parse(sTOC);
                    format.setTimeZone(TimeZone.getDefault());
                    timezoneID = format.format(timestamp);
                }catch(ParseException e){

                }

我将其转换为“EST”,然后将该时间格式化为默认值TimeZone,但时间总是相差一个小时,不知道为什么?

4

2 回答 2

1

使用以下代码获取 UNIX 时间戳:

String serverResp = "05/07/2012 16:55:55";
DateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
Date date = format.parse(serverResp);

现在您有了时间戳,您知道如何使用它。

这是另一个涉及转换的问题,以防您好奇:Android Convert Central Time to Local Time

于 2012-05-07T15:21:30.767 回答
0

使用DateFormat该类将 String 解析为Date. 在这里查看API文档的介绍... http://docs.oracle.com/javase/1.5.0/docs/api/java/text/DateFormat.html

然后,您可以为日期创建日历...

Calendar cal = Calendar.getInstance().setTime(date);

然后您可以使用 .将日历上的时区更改为不同的时区setTimezone()。或者只是以毫秒为单位获取时间,使用getTimeInMillis()

使用CalendarDateDateFormat类应该会让您朝着正确的方向前进。

请参阅Calendar此处的文档... http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

于 2012-05-07T15:22:20.603 回答