I am new to Android and I am currently facing an issue to get current time given the timezone.
I get timezone in the format "GMT-7" i.e. string. and I have the system time.
Is there a clean way to get the current time in the above given timezone? Any help is appreciated. Thanks,
edit : Trying to do this :
public String getTime(String timezone) {
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone(timezone));
Date date = c.getTime();
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String strDate = df.format(date);
return c.getTime().toString();
}
If the specified string doesn't match the syntax, "GMT" is used. For example, TimeZone. getTimeZone("GMT-8"). getID() returns "GMT-08:00".
Javascript date getTimezoneOffset() method returns the time-zone offset in minutes for the current locale. The time-zone offset is the minutes in difference, the Greenwich Mean Time (GMT) is relative to your local time. For example, if your time zone is GMT+10, -600 will be returned.
The getTimeZone() method in Calendar class is used to return the current time-zone of this Calendar. Parameters: The method does not take any parameters. Return Value: The method returns timezone of this Calendar object.
I got it to work like this :
TimeZone tz = TimeZone.getTimeZone("GMT+05:30");
Calendar c = Calendar.getInstance(tz);
String time = String.format("%02d" , c.get(Calendar.HOUR_OF_DAY))+":"+
String.format("%02d" , c.get(Calendar.MINUTE))+":"+
. String.format("%02d" , c.get(Calendar.SECOND))+":"+
. String.format("%03d" , c.get(Calendar.MILLISECOND));
Also, every other time conversion based on this date should also be used with this timezone, otherwise, the default timezone of device will be used and the time will be converted based on that timezone.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With