用Java取指定时区的时间 北京时间,纽约时间,班加罗尔时间
本文专门解决开发中获取系统时间,发现时间不准确,会早/晚N个小时,我在开发中遇到过几次,后来尝试用时区的办法获取当地时间,可以完美解决时间不准确的问题,不用担心服务器时间准不准确的问题。
/**
* 取北京时间
* @return
*/
public static String getBeijingTime(){
return getFormatedDateString(8);
}
/**
* 取班加罗尔时间
* @return
*/
public static String getBangaloreTime(){
return getFormatedDateString(5.5f);
}
/**
* 取纽约时间
* @return
*/
public static String getNewyorkTime(){
return getFormatedDateString(-5);
}
/**
* timeZoneOffset原为int类型,为班加罗尔调整成float类型
* timeZoneOffset表示时区,如中国一般使用东八区,因此 timeZoneOffset就是8
* @param timeZoneOffset
* @return
*/
public static String getFormatedDateString(float timeZoneOffset){
if (timeZoneOffset > 13 || timeZoneOffset < -12) {
timeZoneOffset = 0;
}
int newTime=(int)(timeZoneOffset * 60 * 60 * 1000);
TimeZone timeZone;
String[] ids = TimeZone.getAvailableIDs(newTime);
if (ids.length == 0) {
timeZone = TimeZone.getDefault();
} else {
timeZone = new SimpleTimeZone(newTime, ids[0]);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(timeZone);
return sdf.format(new Date());
}

本文介绍了一种在Java开发中获取指定时区当前时间的方法,解决了因服务器时间不准确导致的时间偏差问题。通过设置不同的时区偏移量,可以轻松获取到如北京时间、纽约时间及班加罗尔时间等。
683

被折叠的 条评论
为什么被折叠?



