印度标准时间(IST)是格林尼治标准时间前5:30(5小时30分钟)。我们将其显示为GMT + 5.5。获得格林威治标准时间
是否有任何方法可以按时区查找此值(在上面的情况下,值= 5.5)?
在我的Android应用程序中,我可以获取设备时区。但如何使用设备时区获取此值?
印度标准时间(IST)是格林尼治标准时间前5:30(5小时30分钟)。我们将其显示为GMT + 5.5。获得格林威治标准时间
是否有任何方法可以按时区查找此值(在上面的情况下,值= 5.5)?
在我的Android应用程序中,我可以获取设备时区。但如何使用设备时区获取此值?
double timezoneval = 0.0;
Calendar cal = Calendar.getInstance();
cal.set(mn.Year(), mn.Month(), mn.Day(), mn.Hour(), mn.minute(),
(int) mn.second());
TimeZone tz = TimeZone.getDefault();
boolean t = tz.inDaylightTime(cal.getTime());
if (t)
timezoneval = ((TimeZone.getDefault().getRawOffset())
/(60 * 60 * 1000D) + (TimeZone.getDefault()
.getDSTSavings()/(60 * 60 * 1000D)));
else
timezoneval = ((TimeZone.getDefault().getRawOffset())/(60 * 60 * 1000D));
你可以试试这个代码。这会给你时区的价值。如果你想要不同的时区值;只是改变 TimeZone tz = TimeZone.getDefault();
到
TimeZone tz = TimeZone.getTimeZone("Asia/Kolkata");
TimeZone.setDefault(tz);
它会为你工作。
试试这个代码
public class Sample {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String dateStr = "2010-06-14 02:21:49-0400";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
TimeZone tz = TimeZone.getDefault();
sdf.setTimeZone(tz);
Date date = sdf.parse(dateStr);
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String newDateStr = sdf.format(date);
System.out.println(newDateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出应该喜欢这个
2010-06-14上午08时21分49秒
检查时区类。原始偏移量是你想要的,以毫秒为单位。您可以轻松地将其转换为数小时的值。
long rawOffset = TimeZone.getDefault().getRawOffset();
见http://developer.android.com/reference/java/util/TimeZone.html#getRawOffset()
这实际上是我需要的。
double rawOffset = TimeZone.getDefault().getRawOffset();
rawOffset = rawOffset/(60 * 60 * 1000);
System.out.println("rawOffset : " + rawOffset);
它不适用于日光节约状态和国家。 – 2013-03-21 09:47:22
好的。谢谢你的提示。 – Bishan 2013-03-21 10:42:11
“Asia/Kolkata”可以被不同的有效时区字符串替换。 – 2013-03-21 09:41:37
我可以使用'tz.getRawOffset()'而不是'TimeZone.getDefault()。getRawOffset()'? – Bishan 2013-03-21 10:43:25
代码中的“mn”是什么? 'cal.set(mn.Year(),mn.Month(),mn.Day(),mn.Hour(),mn.minute(), (int)mn.second());' – Bishan 2013-03-21 10:52:49