Changing Timezoneid with QTimzone in Qtcreator - timezone

I made a simple app displaying local time, utc time and the timezone offset. By default my qt app uses my local timezone "Europe/Amsterdam". But i want it to change when a new timezone is selected with the QCombobox which has a list of all the iana timezoneid's. But i can't find a method/function to change the default timezone to let say "Europe/Berlin" or any other timezoneid.

Eventually found the solution for my question. It seems i had to send a timezoneid with QDatime object:
QString comboxs = ui->comboBox->currentText();
QByteArray timezoneQstring = comboxs.toLocal8Bit();
timezoneids = timezoneQstring.data();
QDateTime timeobj = QDateTime(QDate(2019, 11, 5), QTime(20,28), QTimeZone(timezoneids));

Related

Getting datetime as a string in current timezone

In the MySQL DB: '2020-04-19 22:00:00'(UTC). That's also what my endpoint returns since I set the connection option dataStrings:true.
On the client, after I fetch date:
const timezone = moment.tz.guess();
const convertedDate = moment(date)
.tz(timezone)
.format();
convertedDate then equals to "2020-04-19T22:00:00+02:00" (I'm in the UTC+2 zone).
I would like to get it in the format "2020-04-20T00:00:00" instead. How can I do that?
It looks like moment(date) believes your incoming date value is in local time, not UTC. So, your timezone conversion to local time changes nothing. You can tell moment it's UTC, like this:
const timezone = moment.tz.guess();
const convertedDate = moment.utc(date)
.tz(timezone)
.format();
You do not need moment-timezone for this. With Moment by itself you can use the utc function when parsing, and the local function to convert to the user's local time zone before formatting.
moment.utc('2020-04-19 22:00:00').local().format()
//=> "2020-04-20T00:00:00+02:00"
Also, the Moment team recommends using Moment for existing projects only. For new development, we recommend using Luxon instead:
luxon.DateTime.fromSQL('2020-04-19 22:00:00', {zone: 'utc'}).toLocal().toISO()
//=> "2020-04-20T00:00:00.000+02:00"

Set Android Things time zone

After installing Android Things on a Raspberry Pi, time is not correct. My time zone is GMT+2, and using date +%Z I see RPi's time zone is GMT. How can I set time zone?
Update (based on Michal Harakal's comment):
Since Developer Preview 6 TimeManager class provides access to device settings related to time (NB! TimeManager requires <uses-permission android:name="com.google.android.things.permission.SET_TIME" />). You can use .setTimeZone() method of for time zone set:
private void setupTimeZone(String timeZoneName) {
TimeManager timeManager = TimeManager.getInstance();
timeManager.setTimeZone(timeZoneName);
}
where timeZoneName is one of tz database time zones string, e.g. for Kyiv (GMT +2, DST +3):
setupTimeZone("Europe/Kiev");
Original answer:
You can set it programmatically from Application via AlarmManager.setTimeZone() like in this answer of Synesso:
AlarmManager am = (AlarmManager)getContext().getSystemService(Context.ALARM_SERVICE);
am.setTimeZone("Europe/Madrid");
with <uses-permission android:name="android.permission.SET_TIME_ZONE"/> permission in AndroidManifest.xml file.
List of TimeZone names.
I use these codes
TimeManager timeManager = TimeManager.getInstance();
timeManager.setTimeFormat(TimeManager.FORMAT_24);
// Set time zone to Eastern Standard Time
//timeManager.setTimeZone("America/New_York");
timeManager.setTimeZone("GMT");
calendar.setTime(date);
long timeStamp = calendar.getTimeInMillis();
timeManager.setTime(timeStamp);
with this permission :
com.google.android.things.permission.SET_TIME

How to shift the timezone of an instance of the ruby Time object [duplicate]

I have a datestring in this format
yyyy-mm-ddThh:mm:ss[Z]
And i have a timezone string. for e.g "Asia/Kolkata"
Now i want to convert this date string into the timezone of the given timezone
for e.g. if the date is 2014-01-03T23:30:00Z , then in "Asia/Kolkata" timezone it will be 2014-01-04T05:00:00 .
I tried using Time library , but Time library does not seem to have any method which can convert to other timzone http://ruby-doc.org/core-1.8.6/Time.html#method-c-mktime .
You should use the TZInfo gem.
require 'tzinfo'
tz = TZInfo::Timezone.get('Asia/Kolkata')
utc = DateTime.iso8601('2014-01-03T23:30:00Z')
local = tz.utc_to_local(utc)
If it just a ruby project without rails, also you do not want to install third party gems.
Then you have to do it yourself, the following is what I did:
def convert_time_to_timezone(time, timezone)
timezone_in_hours = timezone.to_i
time_in_seconds = time.to_i
time_in_seconds_in_timezone = time_in_seconds + timezone_in_hours*3600
utc_time = Time.at(time_in_seconds_in_timezone).utc
Time.new(utc_time.year, utc_time.month, utc_time.day, utc_time.hour, utc_time.min, utc_time.sec, "#{timezone}:00")
end
Just provide time (e.g., Time.now) and timezone (e.g., "+11:00", or "-05:00")
it will return the time with the specified timezone.
example:
call convert_time_to_timezone(Time.now, "+11:00") it will return something like
2017-05-31 18:17:13 +1100
If it has rails installed, then you can directly call in_time_zone('"Central Time (US & Canada)"')

Convert iOS localTimeZone to a knownTimeZone

Using NSTimeZone the list of knownTimeZoneNames does not match the timezone retrieved by localTimeZone. How can I convert a timezone from localTimeZone to a time zone from knownTimeZoneNames. More specifically, the timezone .name return value must match a timezone in this list of timezones.
(lldb) po [NSTimeZone localTimeZone]
Local Time Zone (US/Pacific (PST) offset -28800)
(lldb) po [[NSTimeZone localTimeZone] name]
US/Pacific
(lldb) po [NSTimeZone knownTimeZoneNames]
<__NSCFArray 0x10ab5c00>(
Africa/Abidjan,
Africa/Accra,
Africa/Addis_Ababa,
Africa/Algiers,
Africa/Asmara,
Africa/Bamako,
Africa/Bangui,
Africa/Banjul,
Africa/Bissau,
Africa/Blantyre,
Africa/Brazzaville,
Africa/Bujumbura,
Africa/Cairo,
Africa/Casablanca,
Africa/Ceuta,
Africa/Conakry,
Africa/Dakar,
Africa/Dar_es_Salaam,
Africa/Djibouti,
Africa/Douala,
Africa/El_Aaiun,
Africa/Freetown,
Africa/Gaborone,
Africa/Harare,
Africa/Johannesburg,
Africa/Juba,
Africa/Kampala,
Africa/Khartoum,
Africa/Kigali,
Africa/Kinshasa,
Africa/Lagos,
Africa/Libreville,
Africa/Lome,
Africa/Luanda,
Africa/Lubumbashi,
Africa/Lusaka,
Africa/Malabo,
Africa/Maputo,
Africa/Maseru,
Africa/Mbabane,
Africa/Mogadishu,
Africa/Monrovia,
Africa/Nairobi,
Africa/Ndjamena,
Africa/Niamey,
Africa/Nouakchott,
Africa/Ouagadougou,
Africa/Porto-Novo,
Africa/Sao_Tome,
Africa/Tripoli,
Africa/Tunis,
Africa/Windhoek,
America/Adak,
America/Anchorage,
America/Anguilla,
America/Antigua,
America/Araguaina,
America/Argentina/Buenos_Aires,
America/Argentina/Catamarca,
America/Argentina/Cordoba,
America/Argentina/Jujuy,
America/Argentina/La_Rioja,
America/Argentina/Mendoza,
America/Argentina/Rio_Gallegos,
America/Argentina/Salta,
America/Argentina/San_Juan,
America/Argentina/San_Luis,
America/Argentina/Tucuman,
America/Argentina/Ushuaia,
America/Aruba,
America/Asuncion,
America/Atikokan,
America/Bahia,
America/Bahia_Banderas,
America/Barbados,
America/Belem,
America/Belize,
America/Blanc-Sablon,
America/Boa_Vista,
America/Bogota,
America/Boise,
America/Cambridge_Bay,
America/Campo_Grande,
America/Cancun,
America/Caracas,
America/Cayenne,
America/Cayman,
America/Chicago,
America/Chihuahua,
America/Costa_Rica,
America/Creston,
America/Cuiaba,
America/Curacao,
America/Danmarkshavn,
America/Dawson,
America/Dawson_Creek,
America/Denver,
America/Detroit,
America/Dominica,
America/Edmonton,
America/Eirunepe,
America/El_Salvador,
America/Fortaleza,
America/Glace_Bay,
America/Godthab,
America/Goose_Bay,
America/Grand_Turk,
America/Grenada,
America/Guadeloupe,
America/Guatemala,
America/Guayaquil,
America/Guyana,
America/Halifax,
America/Havana,
America/Hermosillo,
America/Indiana/Indianapolis,
America/Indiana/Knox,
America/Indiana/Marengo,
America/Indiana/Petersburg,
America/Indiana/Tell_City,
America/Indiana/Vevay,
America/Indiana/Vincennes,
America/Indiana/Winamac,
America/Inuvik,
America/Iqaluit,
America/Jamaica,
America/Juneau,
America/Kentucky/Louisville,
America/Kentucky/Monticello,
America/Kralendijk,
America/La_Paz,
America/Lima,
America/Los_Angeles,
America/Lower_Princes,
America/Maceio,
America/Managua,
America/Manaus,
America/Marigot,
America/Martinique,
America/Matamoros,
America/Mazatlan,
America/Menominee,
America/Merida,
America/Metlakatla,
America/Mexico_City,
America/Miquelon,
America/Moncton,
America/Monterrey,
America/Montevideo,
America/Montreal,
America/Montserrat,
America/Nassau,
America/New_York,
America/Nipigon,
America/Nome,
America/Noronha,
America/North_Dakota/Beulah,
America/North_Dakota/Center,
America/North_Dakota/New_Salem,
America/Ojinaga,
America/Panama,
America/Pangnirtung,
America/Paramaribo,
America/Phoenix,
America/Port-au-Prince,
America/Port_of_Spain,
America/Porto_Velho,
America/Puerto_Rico,
America/Rainy_River,
America/Rankin_Inlet,
America/Recife,
America/Regina,
America/Resolute,
America/Rio_Branco,
America/Santa_Isabel,
America/Santarem,
America/Santiago,
America/Santo_Domingo,
America/Sao_Paulo,
America/Scoresbysund,
America/Shiprock,
America/Sitka,
America/St_Barthelemy,
America/St_Johns,
America/St_Kitts,
America/St_Lucia,
America/St_Thomas,
America/St_Vincent,
America/Swift_Current,
America/Tegucigalpa,
America/Thule,
America/Thunder_Bay,
America/Tijuana,
America/Toronto,
America/Tortola,
America/Vancouver,
America/Whitehorse,
America/Winnipeg,
America/Yakutat,
America/Yellowknife,
Antarctica/Casey,
Antarctica/Davis,
Antarctica/DumontDUrville,
Antarctica/Macquarie,
Antarctica/Mawson,
Antarctica/McMurdo,
Antarctica/Palmer,
Antarctica/Rothera,
Antarctica/South_Pole,
Antarctica/Syowa,
Antarctica/Vostok,
Arctic/Longyearbyen,
Asia/Aden,
Asia/Almaty,
Asia/Amman,
Asia/Anadyr,
Asia/Aqtau,
Asia/Aqtobe,
Asia/Ashgabat,
Asia/Baghdad,
Asia/Bahrain,
Asia/Baku,
Asia/Bangkok,
Asia/Beirut,
Asia/Bishkek,
Asia/Brunei,
Asia/Choibalsan,
Asia/Chongqing,
Asia/Colombo,
Asia/Damascus,
Asia/Dhaka,
Asia/Dili,
Asia/Dubai,
Asia/Dushanbe,
Asia/Gaza,
Asia/Harbin,
Asia/Hebron,
Asia/Ho_Chi_Minh,
Asia/Hong_Kong,
Asia/Hovd,
Asia/Irkutsk,
Asia/Jakarta,
Asia/Jayapura,
Asia/Jerusalem,
Asia/Kabul,
Asia/Kamchatka,
Asia/Karachi,
Asia/Kashgar,
Asia/Kathmandu,
Asia/Katmandu,
Asia/Khandyga,
Asia/Kolkata,
Asia/Krasnoyarsk,
Asia/Kuala_Lumpur,
Asia/Kuching,
Asia/Kuwait,
Asia/Macau,
Asia/Magadan,
Asia/Makassar,
Asia/Manila,
Asia/Muscat,
Asia/Nicosia,
Asia/Novokuznetsk,
Asia/Novosibirsk,
Asia/Omsk,
Asia/Oral,
Asia/Phnom_Penh,
Asia/Pontianak,
Asia/Pyongyang,
Asia/Qatar,
Asia/Qyzylorda,
Asia/Rangoon,
Asia/Riyadh,
Asia/Sakhalin,
Asia/Samarkand,
Asia/Seoul,
Asia/Shanghai,
Asia/Singapore,
Asia/Taipei,
Asia/Tashkent,
Asia/Tbilisi,
Asia/Tehran,
Asia/Thimphu,
Asia/Tokyo,
Asia/Ulaanbaatar,
Asia/Urumqi,
Asia/Ust-Nera,
Asia/Vientiane,
Asia/Vladivostok,
Asia/Yakutsk,
Asia/Yekaterinburg,
Asia/Yerevan,
Atlantic/Azores,
Atlantic/Bermuda,
Atlantic/Canary,
Atlantic/Cape_Verde,
Atlantic/Faroe,
Atlantic/Madeira,
Atlantic/Reykjavik,
Atlantic/South_Georgia,
Atlantic/St_Helena,
Atlantic/Stanley,
Australia/Adelaide,
Australia/Brisbane,
Australia/Broken_Hill,
Australia/Currie,
Australia/Darwin,
Australia/Eucla,
Australia/Hobart,
Australia/Lindeman,
Australia/Lord_Howe,
Australia/Melbourne,
Australia/Perth,
Australia/Sydney,
Europe/Amsterdam,
Europe/Andorra,
Europe/Athens,
Europe/Belgrade,
Europe/Berlin,
Europe/Bratislava,
Europe/Brussels,
Europe/Bucharest,
Europe/Budapest,
Europe/Busingen,
Europe/Chisinau,
Europe/Copenhagen,
Europe/Dublin,
Europe/Gibraltar,
Europe/Guernsey,
Europe/Helsinki,
Europe/Isle_of_Man,
Europe/Istanbul,
Europe/Jersey,
Europe/Kaliningrad,
Europe/Kiev,
Europe/Lisbon,
Europe/Ljubljana,
Europe/London,
Europe/Luxembourg,
Europe/Madrid,
Europe/Malta,
Europe/Mariehamn,
Europe/Minsk,
Europe/Monaco,
Europe/Moscow,
Europe/Oslo,
Europe/Paris,
Europe/Podgorica,
Europe/Prague,
Europe/Riga,
Europe/Rome,
Europe/Samara,
Europe/San_Marino,
Europe/Sarajevo,
Europe/Simferopol,
Europe/Skopje,
Europe/Sofia,
Europe/Stockholm,
Europe/Tallinn,
Europe/Tirane,
Europe/Uzhgorod,
Europe/Vaduz,
Europe/Vatican,
Europe/Vienna,
Europe/Vilnius,
Europe/Volgograd,
Europe/Warsaw,
Europe/Zagreb,
Europe/Zaporozhye,
Europe/Zurich,
GMT,
Indian/Antananarivo,
Indian/Chagos,
Indian/Christmas,
Indian/Cocos,
Indian/Comoro,
Indian/Kerguelen,
Indian/Mahe,
Indian/Maldives,
Indian/Mauritius,
Indian/Mayotte,
Indian/Reunion,
Pacific/Apia,
Pacific/Auckland,
Pacific/Chatham,
Pacific/Chuuk,
Pacific/Easter,
Pacific/Efate,
Pacific/Enderbury,
Pacific/Fakaofo,
Pacific/Fiji,
Pacific/Funafuti,
Pacific/Galapagos,
Pacific/Gambier,
Pacific/Guadalcanal,
Pacific/Guam,
Pacific/Honolulu,
Pacific/Johnston,
Pacific/Kiritimati,
Pacific/Kosrae,
Pacific/Kwajalein,
Pacific/Majuro,
Pacific/Marquesas,
Pacific/Midway,
Pacific/Nauru,
Pacific/Niue,
Pacific/Norfolk,
Pacific/Noumea,
Pacific/Pago_Pago,
Pacific/Palau,
Pacific/Pitcairn,
Pacific/Pohnpei,
Pacific/Ponape,
Pacific/Port_Moresby,
Pacific/Rarotonga,
Pacific/Saipan,
Pacific/Tahiti,
Pacific/Tarawa,
Pacific/Tongatapu,
Pacific/Truk,
Pacific/Wake,
Pacific/Wallis
)
The reason localTimeZone is not included in the list is that your local time zone is showing an older name that's only supported for backward compatibility. The semi-official list of time zones is maintained by IANA. Their format is generally Continent/City but they support older names for compatibility.
Unlike API calls, older names are not in any sense deprecated. They're not current, but still completely valid.
If your local time zone is US/Pacific, the current official name for the zone is America/Los_Angeles, which does appear in the list. Based on your results it would appear that knownTimeZoneNames only lists current names. Why iOS is giving you an older name isn't something I can answer, but I do know that it's common.
To match them up, you have a couple of options:
Run through known time zones and exhaustively compare the zone data attribute to find one that's equivalent. Yeah, ugly.
Get the IANA data. It includes a file called backward that maps old names to new names. Include that file in your project. Then, if you get a zone name not found in the "known" list, consult the backward compatibility list to get the current name.
I wouldn't recommend #eipipuz's approach. It seems to work, but the problem with abbreviations is that they're not globally unique. Known abbreviations may vary depending on the user's locale (for example, more than one place as "EST" for its Eastern time zone). As a result some "common" abbreviations may have different definitions in different places, or simply have no definition.
You can use the dictionary described in this question: GMT timezone conversion in objective c. Makes it pretty simple since you have the key.
Hold on a second, the problem is that you are going to have multiple entries that apply given only the code. What you have is not enough information.
This question is pretty close: iPhone NSTimeZone: localTimeZone confusion to your observation.
I think the answer is:
NSString *known = #"US/Pacific"
NSString *abbr = [[NSTimeZone timeZoneWithName:known] abbreviation];
NSString *expected = [[NSTimeZone abbreviationDictionary] objectForKey:abbr];

how to get timezone from a calendar

I am trying to get the timezone from native calendar using the following code but i am getting the timezone has Asia/Calcutta instead of just 'IST'
Calendar calendarLocal = Calendar.getInstance();
// fetches time zone
TimeZone timeZone = calendarLocal.getTimeZone();
System.out.println("Time Zone getAvailableIDs() --->"+timeZone.getAvailableIDs());
String[] x=timeZone.getAvailableIDs();
for(int i=0;i<x.length;i++){
System.out.println("Time Zone IDs-->"+x[i]);
}
System.out.println("Time Zone ID--->"+timeZone.getID());
System.out.println(" Calender Default-------->>>"+timeZone.getDefault());
System.out.println("Time Zone --->"+timeZone.getTimeZone(timeZone.getID()));
Here TimeZone is Asia/Calcutta i need it to print IST
BlackBerry Java doesn't give you the time zone short codes, at least not reliably (it only gaurantees to know about the "GMT" code). You can see my answer here for information about how to code a mapping between strings like "Asia/Calcutta" and "IST". (my method mapTimeZoneCodes() in that example)
I provide a template method for setting up the mapping, and a link to this article on Desktop Java, which seems to have a pretty complete list of the time zone codes, and how to map codes to the long Java time zone strings.
It will be boring work to copy the strings into my template, but once you have it, you'll be able to easily lookup the short code based on the long name:
String longName = timeZone.toString();
String shortCode = (String)_timeZones.get(longName);

Resources