Chcę ustawić strefę czasową systemu, datę w iOS według kodu. Pomagają mi jakieś pomysły lub prywatne apisy? Przykład: ustaw strefę czasową na GMT + 8, a datę na 10 sierpnia 2013 r. 20:30. Jak to zrobić? Dzięki!Jak ustawić strefę czasową systemu dla iOS według kodu?
Odpowiedz
Jak mówili inni nie można edytować Strefa czasowa systemu z poziomu aplikacji, jednak możesz można ustawić ustawić domyślną strefę czasową dla całej aplikacji przy użyciu +setDefaultTimeZone:
na NSTimeZone
.
Wspomniałeś to było do testowania, więc mam zamiar założyć, to dla testów jednostkowych niektórych date zwyczaj formatek i taki, w którym to przypadku można zrobić coś takiego w badanej jednostki:
static NSTimeZone *cachedTimeZone;
@implementation DateUtilTests
+ (void)setUp
{
[super setUp];
cachedTimeZone = [NSTimeZone defaultTimeZone];
// Set to whatever timezone you want your tests to run in
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
}
+ (void)tearDown
{
[NSTimeZone setDefaultTimeZone:cachedTimeZone];
[super tearDown];
}
// ... do some tests ...
@end
Mam nadzieję, że to pomoże!
Nawet jeśli nie jest to udokumentowane, można również uniknąć buforowania strefy czasowej, ponieważ '[NSTimeZone setDefaultTimezone: nil]' wystarczy, aby zresetować wartość 'defaultTimeZone' do oryginalnej wartości. – viteinfinite
w Swift, możemy teraz użyć 'NSTimeZone.resetSystemTimeZone()' aby osiągnąć ten –
@ ula-Bedlam za https://developer.apple.com/reference/foundation/nstimezone/1387189-resetsystemtimezone?language=objc wygląda 'resetSystemTimeZone' istnieje od iOS 2 i nie jest to tylko Swift. –
Jak @Filip powiedział w komentarzach, że nie można edytować preferencji systemowych w aplikacji. Co możesz zrobić (nie wiesz, czy będzie to dla ciebie przydatne) to strefa czasowa NSDates, z którymi pracujesz, w twojej aplikacji.
To przykład, jak to zrobić:
NSString *dateString = @"2013-08-07 17:49:54";
NSDateFormatter *dateFormatter = [NSDateFormatter new];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Europe/London"]; //set here the timezone you want
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:timeZone];
NSDate *date = [dateFormatter dateFromString:dateString];
Oto lista możliwych stref czasowych do stosowania z timeZoneWithName: `: http://pastebin.com/ibNU2RcG
Dziękujemy za tę sugestię, ale w jaki sposób ustawić wewnątrz mojej aplikacji, a strefa czasowa i data zostaną ustawione dla wszystkich aplikacji w systemie iOS? –
Cóż, jak już wcześniej powiedziałem, dla wszystkich systemów, wszystkich aplikacji itp. Wydaje się, że nie ma sposobu, aby to zrobić, przepraszam, możesz kontrolować tylko datę/strefę czasową swojej własnej aplikacji. –
- 1. Jak ustawić strefę czasową dla Postgres psql?
- 2. Jak ustawić strefę czasową przy użyciu Powershell
- 3. Jak określić strefę czasową według przesunięcia UTC?
- 4. Próbujesz ustawić strefę czasową dla wydarzenia
- 5. H2 ustawić domyślną strefę czasową
- 6. Jak ustawić strefę czasową na wątek?
- 7. Jak ustawić strefę czasową w gnuplot?
- 8. Jak ustawić strefę czasową z wiersza poleceń?
- 9. Jak programowo ustawić strefę czasową w Javie?
- 10. Jak ustawić strefę czasową w Crashlytics?
- 11. Jak ustawić strefę czasową przed wywołaniem strftime?
- 12. Jak poprawnie ustawić strefę czasową mysql
- 13. Pobierz strefę czasową według kraju i regionu
- 14. Jak zmienić strefę czasową dla aplikacji asp.net
- 15. Jak ustawić strefę czasową bazy danych dla instancji AWS RDS
- 16. MYSQL ustawić strefę czasową w kodzie PHP
- 17. Jak ustawić strefę czasową w kanale iCal za pomocą DDay.iCal?
- 18. Dostosuj strefę czasową
- 19. jak wykryć strefę czasową klienta?
- 20. Jak uzyskać strefę czasową użytkownika?
- 21. Jak ustawić strefę czasową Laravel Carbon na znaczniki czasu?
- 22. Jak uzyskać lokalną strefę czasową z systemu używając nodejs
- 23. Jak ustawić strefę czasową bazy danych w aplikacji.ini
- 24. Jak ustawić strefę czasową wartości w Pandas DataFrame?
- 25. Jak ustawić strefę czasową za pomocą pliku org.joda.time?
- 26. Jak ustawić domyślną strefę czasową w aplikacji ASP.Net
- 27. Android, jak ustawić strefę czasową za pomocą aplikacji
- 28. Jak ustawić strefę czasową w Sails.js lub Express.js
- 29. Jak zmienić strefę czasową w jenkins
- 30. Jak uzyskać lokalną strefę czasową w PHP?
Nie można ustawić ustawień systemowych w aplikacji! (Może to być możliwe na urządzeniu zepsutym) – Groot
Możesz użyć privis apis, aby to zrobić, ale to nie będzie akceptowane w sklepie z aplikacjami. Czy planujesz dystrybucję wewnętrzną? – cvsguimaraes
Tak, myślę, że istnieje kilka prywatnych api, aby to zrobić, ale nie wiem, po prostu używa do testowania w domu! –