我有一个日期,我从EST格式化的服务器获得这样的
05/07/2012 16:55:55
每月/每天/每年然后是时间
如果手机不在美国东部时间,我如何将其转换为手机所在的时区?
如果我在毫秒内得到时间,那就不会有问题,但我不会修改
现在确定格式化时间不正确
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
,但时间总是偏离一小时,不知道为什么?
答案 0 :(得分: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
答案 1 :(得分:0)
使用DateFormat
类将字符串解析为Date
。请参阅此处的API文档简介... http://docs.oracle.com/javase/1.5.0/docs/api/java/text/DateFormat.html
然后,您可以为日期...
创建日历Calendar cal = Calendar.getInstance().setTime(date);
然后,您可以使用setTimezone()
将日历上的时区更改为其他时区。或者使用getTimeInMillis()
使用Calendar
,Date
和DateFormat
类可以让您朝着正确的方向前进。
请在此处查看Calendar
文档... http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html