在java中获取不同的时区
在java中,以毫秒为单位获取当前时间是有方法的,但这里需要系统时间。但是,假设我是印度时间和苏黎世时间,如何从我的系统中选择特定时区?您必须更改系统日历中的时区,或者必须计算当前时区和所需时区之间的差异。然后将差异添加到当前时区。您将获得所需的时区时间。下面是一些你可以使用的方法在java中获取不同的时区,java,time,Java,Time,在java中,以毫秒为单位获取当前时间是有方法的,但这里需要系统时间。但是,假设我是印度时间和苏黎世时间,如何从我的系统中选择特定时区?您必须更改系统日历中的时区,或者必须计算当前时区和所需时区之间的差异。然后将差异添加到当前时区。您将获得所需的时区时间。下面是一些你可以使用的方法 package com.jts1.service.timeconverter; import android.annotation.SuppressLint; import java.text.SimpleDate
package com.jts1.service.timeconverter;
import android.annotation.SuppressLint;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class TimeConverterUtil {
private int offsetHours;
private int offsetMinutes;
private int selectedTimeZoneOffset;
private int currentTimeZoneoffset;
private int selectedtimeZoneOffsetMinutes;
private int dayLightSavings;
private long greenwichMeanTimeMilliSeconds;
private long localTimeMilliSeconds;
private String selectedTimeZoneType;
private String selectedTimeZoneName;
private String[] timeZoneIDs = TimeZone.getAvailableIDs();
private Calendar localCalendar;
private TimeZone selectedtimezone;
private TimeZone currentTimeZone;
@SuppressLint("SimpleDateFormat")
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"EEEE, dd MMMM yyyy HH:mm:ss");
public int getSelectedTimeZoneOffset(int timeZoneTypePosition) {
selectedTimeZoneType = timeZoneIDs[timeZoneTypePosition];
selectedtimezone = TimeZone.getTimeZone(selectedTimeZoneType);
selectedTimeZoneName = selectedtimezone.getDisplayName();
selectedTimeZoneOffset = selectedtimezone.getRawOffset();
if (selectedtimezone.inDaylightTime(new Date())) {
dayLightSavings = selectedtimezone.getDSTSavings();
}
selectedTimeZoneOffset = selectedTimeZoneOffset - dayLightSavings;
return selectedTimeZoneOffset;
}
public String getSelectedTimeZoneName(int timeZoneTypePosition) {
selectedTimeZoneType = timeZoneIDs[timeZoneTypePosition];
selectedtimezone = TimeZone.getTimeZone(selectedTimeZoneType);
selectedTimeZoneName = selectedtimezone.getDisplayName();
return selectedTimeZoneName;
}
public long getGreenwichMeanTime() {
localCalendar = Calendar.getInstance();
localTimeMilliSeconds = localCalendar.getTimeInMillis();
currentTimeZone = Calendar.getInstance().getTimeZone();
currentTimeZoneoffset = currentTimeZone.getRawOffset();
if (currentTimeZone.inDaylightTime(new Date())) {
currentTimeZoneoffset = currentTimeZoneoffset
+ currentTimeZone.getDSTSavings();
}
greenwichMeanTimeMilliSeconds = localTimeMilliSeconds
- currentTimeZoneoffset;
return greenwichMeanTimeMilliSeconds;
}
public int getOffsetHoursToGMT(int selectedTimeZoneOffset) {
selectedtimeZoneOffsetMinutes = selectedTimeZoneOffset / (60 * 1000);
offsetHours = selectedtimeZoneOffsetMinutes / 60;
return offsetHours;
}
public int getOffsetMinutesToGMT(int selectedTimeZoneOffset) {
selectedtimeZoneOffsetMinutes = selectedTimeZoneOffset / (60 * 1000);
offsetMinutes = selectedtimeZoneOffsetMinutes % 60;
return offsetMinutes;
}
}