Java 在android应用程序中获取当前时区
如何在Android应用程序中获取当前时区?我试着用这个Java 在android应用程序中获取当前时区,java,android,Java,Android,如何在Android应用程序中获取当前时区?我试着用这个 Calendar cal = Calendar.getInstance( userConfig.locale); TimeZone tz = cal.getTimeZone(); 但我不能从中得到时区。如何显示时区 String timezoneID = TimeZone.getDefault().getID(); System.out.println(timezoneID); 在我的控制台中,它打印Asia/Calcutta
Calendar cal = Calendar.getInstance( userConfig.locale);
TimeZone tz = cal.getTimeZone();
但我不能从中得到时区。如何显示时区
String timezoneID = TimeZone.getDefault().getID();
System.out.println(timezoneID);
在我的控制台中,它打印Asia/Calcutta
和任何日期格式,我设置它像
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy");
sdf2.setTimeZone(TimeZone.getTimeZone(timezoneID));
要显示当前时间,您应该在UI线程上运行下面的代码段。这对我很有用:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
runOnUiThread(new Runnable(){
public void run() {
dateTxt.setText(new Date().toString());
}
});
}
}, 0, 1000);
用这个
Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
Log.d("Time zone","="+tz.getDisplayName());
或者您也可以使用java.util.TimeZone
类
TimeZone.getDefault().getDisplayName()
我需要的补偿,不仅包括白天节省的时间,但作为一个数字。下面是我在有人寻找示例时使用的代码 我得到的回答是“11”,这是我夏天在澳大利亚新南威尔士州所期望的。我还需要它作为一个字符串,这样我就可以将它发布到服务器上,这样您就不需要最后一行了
TimeZone tz = TimeZone.getDefault();
Date now = new Date();
int offsetFromUtc = tz.getOffset(now.getTime()) / 3600000;
String m2tTimeZoneIs = Integer.toString(offsetFromUtc);
+1用于使用TimeZone.getDefault()而不是实例化日历来获取时区。
TimeZone.getDefault().getDisplayName()
效果良好。如果使用JodaTime
,则可以使用DateTime.now(DateTimeZone.getDefault())代码>。如果您没有使用JodaTime
,您应该查看它。这不适用于时差小于半小时的时区,例如纽芬兰,即GMT-2:30,您只需返回2个。请阅读并理解问题@gangeshwari