In java to get the the current time in millis we have method, but it takes the system time here. But say i an indian time and zurich time how to pick a specific timezone from my system?
Asked
Active
Viewed 103 times
1 Answers
0
you have to change time zone in your system calander or you have to calculate difference between current time zone and required time zone. Then add difference to current time zone. you will get your required timezone time. Here is some methods you can use them.
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;
}
}

subhakar patnala
- 319
- 1
- 4
- 15