Comment trouver le décalage de fuseau horaire actuel sur le périphérique en HEURES?iPhone: Trouver le décalage de fuseau horaire en HOURS
Répondre
NSDate *sourceDate = [NSDate dateWithTimeIntervalSinceNow:3600 * 24 * 60];
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
float timeZoneOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate]/3600.0;
NSLog(@"sourceDate=%@ timeZoneOffset=%d", sourceDate, timeZoneOffset);
Il y a un très bel objet NSTimeZone qui vous donnera le décalage horaire de GMT en quelques secondes:
float timezoneoffset = ([[NSTimeZone systemTimeZone] secondsFromGMT]/3600.0);
Pour plus voir blog Le post
http://blog.indieiphonedev.com/2011/01/09/getting-the-timezone-on-the-device/
Rappelez-vous que le décalage est pas nécessairement un entier - certains les pays ont des décalages d'une demi-heure (ou quart) (je vois que le post le mentionne, c'est juste au cas où les gens ne le liraient pas). –
Je voulais juste ajouter que ce code évite certains pièges potentiels de la réponse marquée comme correcte. –
Lien vers l'article de blog en réponse est mort. – Pang
Ne pas utilise un int !!! J'ai copié ce code et j'ai maintenant un bug dans mon application. Certains sont timezones .5 heures
utiliser ceci:
float offset = [timezone secondsFromGMTForDate:self.date]/3600.0;
et ne pas oublier le .0 derrière 3600
Pour ceux qui cherchent la zone heure de décalage en tant que chaîne, essayez:
NSDateFormatter *localTimeZoneFormatter = [NSDateFormatter new];
localTimeZoneFormatter.timeZone = [NSTimeZone localTimeZone];
localTimeZoneFormatter.dateFormat = @"Z";
NSString *localTimeZoneOffset = [localTimeZoneFormatter stringFromDate:[NSDate date]];
Dans mon fuseau horaire, localTimeZoneOffset
contient -0700
Merci. Enregistré mes heures. –
-(void)getDeviceUTCOffset{
NSDate *date = [NSDate date];
NSTimeZone* deviceTimeZone_ = [NSTimeZone systemTimeZone];
float offset = [deviceTimeZone_ secondsFromGMTForDate:date]/3600.0;
}
Pour tester le code - test sur un dispositif
dispositif de changement dans Timezone
Settings > General > Date Time
Turn off SET AUTOMATICALLY
Then tap TimeZone and choose major cities east/west of you
Run code and check float offset
Comparer la valeur aux villes sur ce site
par exemple Heres Helsinki
fuseau horaire standard: UTC/GMT +2 heures - à partir de Nov
http://www.timeanddate.com/worldclock/city.html?n=101
contre les pays avec Check heure d'été britannique ou leur équivalent.
localTimeZon Utiliser NSTimeZone e
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
NSInteger seconds = [timeZone secondsFromGMT];
NSLog(@"TZ : %@ : Seconds %ld",[timeZone abbreviation],(long)seconds);
int h = (int)seconds/3600;
int m = (int)seconds/60 % 60;
NSString *strGMT = @"";
if (h>=0)
strGMT = [NSString stringWithFormat:@"+%02d:%02d", h, m];
else
strGMT = [NSString stringWithFormat:@"%03d:%02d", h, m];
NSLog(@"GMT -/+ HH:mm: %@",strGMT);
Le code ci-dessus ne produit pas de valeurs correctes pour les secondes négativesFromGMT et les minutes non nulles. Je suggère de remplacer la condition par 'if (0 <= secondes)' et l'instruction 'else' par' strGMT = [NSString stringWithFormat: @ "-% 02d:% 02d", -h, -m]; ' –
est ici un moyen facile de le faire en Swift 3:
let offsetInHours = Double(TimeZone.current.secondsFromGMT())/3600.0
- 1. Convertir le fuseau horaire décalage horaire en fuseau horaire (militaire?)
- 2. .NET Décalage du fuseau horaire par nom de fuseau horaire
- 3. PHP décalage fois fuseau horaire
- 4. NSDate - Décalage du fuseau horaire
- 5. iPhone - Comment obtenir le décalage horaire?
- 6. Problème de décalage de fuseau horaire Ruby
- 7. conditions named_scope et décalage de fuseau horaire
- 8. PHP - bizarre décalage de fuseau horaire
- 9. Convertir le décalage UTC en fuseau horaire ou date
- 10. Comment convertir un abréviation de décalage de fuseau horaire en identifiant officiel de fuseau horaire?
- 11. codeigniter obtenir décalage de fuseau horaire
- 12. Java Fuseau horaire: pourquoi décalage est nécessaire
- 13. Numéro de décalage de fuseau horaire dans Objective-c?
- 14. Obtenir l'heure actuelle avec le décalage de fuseau horaire donné
- 15. Comment utiliser le décalage de fuseau horaire dans Nodejs?
- 16. iphone comment obtenir le fuseau horaire?
- 17. iOS - Comment obtenir un décalage brut pour le fuseau horaire?
- 18. Comment trouver le décalage de fuseau horaire de l'utilisateur dans Excel
- 19. Comment obtenir le décalage UTC actuel (fuseau horaire)?
- 20. Obtenir un décalage de fuseau horaire pour un emplacement donné
- 21. L'objet Python datetime affiche un mauvais décalage de fuseau horaire
- 22. jQuery.datepicker.formatDate et décalage horaire
- 23. Service Client DateTime Fuseau horaire Compatibilité de décalage Problème
- 24. pour obtenir le décalage horaire entre le fuseau horaire différent pour mon wp7 App
- 25. JS conversion de fuseau horaire
- 26. Incassemblage de l'époque avec le fuseau horaire
- 27. Comment calculer le décalage horaire?
- 28. Fuseau horaire en C#?
- 29. Trouver un fuseau horaire à partir de l'adresse IP
- 30. Fuseau horaire en ruby
Il y a deux problèmes potentiels avec ce code: (1) il devrait vraiment utiliser "localTimeZone" au lieu de "systemTimeZone" (qui normalement se termine par être le même). (2) sourceDate devrait être [date NSDate], j'ai rencontré un problème où le timeZoneOffset était erroné d'une heure lors de l'utilisation de la date d'expiration donnée. Pouvez-vous expliquer pourquoi vous utilisez une date source différente d'un jour? –