Android本地时间到EST时间转换
代码:
SimpleDateFormat serverDateFormat=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
serverDateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
Calendar calender= Calendar.getInstance(Locale.getDefault());
String time=serverDateFormat.format(calender.getTime());但是我的时间不对。和正确的时间差一个小时。当地时间:7月7日下午17:30 GMT+05:30 2015格式化时间: 2015/ 07 /07 :00正确时间: 2015/07/ 07 :00:00
发布于 2015-07-07 15:18:33
您的问题是使用标识符"EST“,它代表”东方标准时间“。顾名思义,它不使用夏令。证明:
TimeZone tz = TimeZone.getTimeZone("EST");
long offset = tz.getOffset(System.currentTimeMillis()) / (1000 * 3600);
System.out.println(tz.getID() + ":" + tz.useDaylightTime() + "/" + offset);
// output: EST:false/-5改为使用时区id“America/New York”:
tz = TimeZone.getTimeZone("America/New_York");
offset = tz.getOffset(System.currentTimeMillis()) / (1000 * 3600);
System.out.println(tz.getID() + ":" + tz.useDaylightTime() + "/" + offset);
// output: America/New_York:true/-4然后你将观察到7月份的夏令时,偏移差为(+05:30) - (-04:00) = +09:30,因此预计当地时间上午8点。
发布于 2015-07-07 12:28:15
嘿,请试试这个function for time conversion -
public static String getTime(String time, SimpleDateFormat sdf) {
String convertedTime = "";
try {
TimeZone timeZone = TimeZone.getDefault();
Date postdate = sdf.parse(time);
long postTimeStamp = postdate.getTime() + timeZone.getRawOffset();
String dateString = sdf.format(new Date(postTimeStamp));
convertedTime = dateString;
// convertedTime = getLastTime(context, time);
} catch (Exception e) {
e.printStackTrace();
}
return convertedTime;
}https://stackoverflow.com/questions/31268500
复制相似问题