Android 同步服务器时区
2016-05-09 18:04
666 查看
Android 项目 工作平台 需要显示细化的时间,但硬件PAD时间不同,做了同步服务器时间
timStamp,timeZone -- 登陆获取服务器获取时间戳 和 时区
public static long timeDifference;//与服务器时间的差异
public static void gettimeDifference(long org_server_tm, String server_timezone) {
Date w_ret = Utility.DateTimeConvertToServer(new Date(), server_timezone);
timeDifference = org_server_tm - w_ret.getTime();
}
/***
* 把当地的时间转为服务器当时的时间,一般递交数据前先把Date一类数据转换
*
* @param tm
* @return
*/
public static Date DateTimeConvertToServer(Date tm, String server_timezone) {
if (tm == null)
return null;
String timezone = TimeZone.getDefault().getID();
if ("GMT".equals(timezone)) {
timezone = timezone + "+0";
}
tm = new Date(tm.getTime() - getDiffTimeZoneRawOffsetStd(timezone)); // 转成格林威治时间
Date d = new Date(tm.getTime() + getDiffTimeZoneRawOffsetStd(server_timezone));
return d;
}
/***
* 计算出指定时区跟格林威治时间差
*
* @param timeZoneId
* @return
*/
public static int getDiffTimeZoneRawOffsetStd(String timeZoneId) {
// return TimeZone.getTimeZone(timeZoneId).getRawOffset();
TimeZone tz = TimeZone.getTimeZone(timeZoneId);
return tz.getOffset(GregorianCalendar.getInstance(tz).getTimeInMillis());
}
此 timeDifference 为与服务器时间的差异
/**
* 永远以server为准
*
* @return
*/
public static long getnowTime() {
if (MyApplication.timeDifference != 0) {
if (TeacherBean.getInstance().timeZone.isEmpty()) {
TeacherBean.getInstance().timeZone = "Asia/Shanghai";
}
Date w_ret = DateTimeConvertToServer(new Date(), TeacherBean.getInstance().timeZone);
w_ret.setTime(w_ret.getTime() + MyApplication.timeDifference);
return w_ret.getTime();
} else {
return System.currentTimeMillis();
}
}
timStamp,timeZone -- 登陆获取服务器获取时间戳 和 时区
public static long timeDifference;//与服务器时间的差异
public static void gettimeDifference(long org_server_tm, String server_timezone) {
Date w_ret = Utility.DateTimeConvertToServer(new Date(), server_timezone);
timeDifference = org_server_tm - w_ret.getTime();
}
/***
* 把当地的时间转为服务器当时的时间,一般递交数据前先把Date一类数据转换
*
* @param tm
* @return
*/
public static Date DateTimeConvertToServer(Date tm, String server_timezone) {
if (tm == null)
return null;
String timezone = TimeZone.getDefault().getID();
if ("GMT".equals(timezone)) {
timezone = timezone + "+0";
}
tm = new Date(tm.getTime() - getDiffTimeZoneRawOffsetStd(timezone)); // 转成格林威治时间
Date d = new Date(tm.getTime() + getDiffTimeZoneRawOffsetStd(server_timezone));
return d;
}
/***
* 计算出指定时区跟格林威治时间差
*
* @param timeZoneId
* @return
*/
public static int getDiffTimeZoneRawOffsetStd(String timeZoneId) {
// return TimeZone.getTimeZone(timeZoneId).getRawOffset();
TimeZone tz = TimeZone.getTimeZone(timeZoneId);
return tz.getOffset(GregorianCalendar.getInstance(tz).getTimeInMillis());
}
此 timeDifference 为与服务器时间的差异
/**
* 永远以server为准
*
* @return
*/
public static long getnowTime() {
if (MyApplication.timeDifference != 0) {
if (TeacherBean.getInstance().timeZone.isEmpty()) {
TeacherBean.getInstance().timeZone = "Asia/Shanghai";
}
Date w_ret = DateTimeConvertToServer(new Date(), TeacherBean.getInstance().timeZone);
w_ret.setTime(w_ret.getTime() + MyApplication.timeDifference);
return w_ret.getTime();
} else {
return System.currentTimeMillis();
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- How do I change MySQL timezone?
- Android系统广播列表
- 在RHFC3 下配置NIS服务器 version 3
- tomcat 8小时时间差。。
- JavaScript构造PHP函数
- java获得windows系统时间有误的解决方案
- JAVA 距离某个时间的秒数
- 时间函数(陆续添加...)
- 实用工具类库java.util
- 闰秒(leap second)和linux/unix时间
- [IPhone开发]NSDateFormatter的格式字符串
- php时间相差8小时解决方法
- Oracle9i初始化参数中文说明2
- JavaScript 获取客户端计算机硬件及系统信息
- php小笔记
- PHP杂记
- 简单zend_feed使用
- 代码小工具
- php date()时间不对