如何找出用户的GMT值,例如印度为+05:30。 如何在Android中计算此+05:30值?
我需要这个,因为我在我的应用程序中使用了一个java库,它有一个+05:30字段的函数,我想通过计算生成这个字段,这样我就不必为各个国家填写个别值。 / p>
答案 0 :(得分:6)
这才是真棒
public double getOffset(){
TimeZone timezone = TimeZone.getDefault();
int seconds = timezone.getOffset(Calendar.ZONE_OFFSET)/1000;
double minutes = seconds/60;
double hours = minutes/60;
return hours;
}
答案 1 :(得分:0)
首先获取纪元系统时间
System.currentTimeMillis()
然后使用日期对象,将时区设置为GMT并使用长valye初始化
dateObj.setTimeZone(TimeZone.getTimeZone("GMT"))
答案 2 :(得分:0)
要GMT
使用以下功能,dateInString
是日期的值,format
的日期格式为yyyyMMddHH
public static long getDate(String dateInString,String format){
long date = 0;
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
try {
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date d = dateFormat.parse(dateInString);
date = d.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
答案 3 :(得分:0)
使用以下方法获取UTC: -
public int GetUnixTime()
{
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
int utc = (int)(now / 1000);
return (utc);
}
获得UTC后,现在将其与此网站http://www.xav.com/time.cgi中的Epoch进行比较。
请参阅以下链接: -
How can I get the current date and time in UTC or GMT in Java?
答案 4 :(得分:0)
如果您在应用中存储时区与其GMT偏移之间的地图,则可以调用TimeZone.getDefault()来获取设备的时区并快速查找以返回GMT偏移。这样您就不必依赖可能棘手的日期/时间计算,并确保您拥有正确的值。