W mojej aplikacji muszę osobno pobrać godzinę i minutę:
NSString *currentHour=[string1 substringWithRange: NSMakeRange(0,2)];
int currentHourInNumber=[currentHour intValue];
Rozważ string1
zawiera, 11:59:13 AM
który pochodzi z DatePicker.
Tutaj, jeśli używam powyższego kodu, można uzyskać godzinę, jeśli jest większa niż 9. W przeciwnym razie muszę zmienić, NSMakeRange(0,1)
aby uzyskać godzinę z zakresu od 1 do 9.
Czy są jakieś metody, aby uzyskać godzinę, minuty itp.?
Z góry dziękuję, podaj przykładowy kod.
ios
objective-c
nsdate
hour
prochowiec
źródło
źródło
Odpowiedzi:
Użyj NSDateFormatter, aby przekonwertować
string1
na anNSDate
, a następnie pobierz wymagane składniki NSDateComponents :Obj-C :
Swift 1 i 2 :
Swift 3 :
Więcej informacji na temat formatu daty można znaleźć na oficjalnej stronie Unicode
źródło
Jeśli potrzebujesz go tylko do prezentacji jako ciąg, poniższy kod jest znacznie łatwiejszy
źródło
Wydaje mi się, że to jest to, o co chodzi w pytaniu, bez potrzeby stosowania formantów:
źródło
NSDateComponents
Wszystko, czego potrzebujesz, można znaleźć tutaj:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DatesAndTimes/Articles/dtCalendars.html
źródło
Gdybyś miał użyć biblioteki C, można to zrobić:
I używając Swift:
Więcej wskazówek można znaleźć pod adresem : http://www.cplusplus.com/reference/ctime/localtime/
źródło
Z iOS 8, Apple wprowadził metodę pomocniczą, aby pobrać
hour
,minute
,second
ananosecond
z obiektu NSDate.Cel C
Szybki
źródło
Swift 2.0
Możesz zrobić następujące rzeczy, aby uzyskać godziny i minuty od daty:
źródło
Swift 2.0
Zwróć uwagę na rzutowanie na String w instrukcji print, możesz łatwo przypisać tę wartość do zmiennych, na przykład:
Następnie możesz połączyć wartości w następujący sposób:
źródło