Jak uzyskać bieżący rok jako ciąg w Obj-C?iphone Pobierz bieżący rok jako ciąg
Również w jaki sposób mogę porównać to samo, używając innej wartości z roku?
Czy zaleca się porównywanie ciągów LUB porównanie wyników z roku na rok?
Jak uzyskać bieżący rok jako ciąg w Obj-C?iphone Pobierz bieżący rok jako ciąg
Również w jaki sposób mogę porównać to samo, używając innej wartości z roku?
Czy zaleca się porównywanie ciągów LUB porównanie wyników z roku na rok?
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy"];
NSString *yearString = [formatter stringFromDate:[NSDate date]];
// Swift
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy"
let year = dateFormatter.string(from: Date())
Możesz porównać NSString
s metodą -isEqualToString:
.
NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSInteger year = [gregorian component:NSCalendarUnitYear fromDate:NSDate.date];
Uwaga: oprócz NSGregorianCalendar istnieje kilka identyfikatorów kalendarzy. Użyj tego, co jest odpowiednie dla twojego regionu. Możesz poprosić o dowolny zestaw składników, które chcesz, poprzez podzielenie bitowe OR na pola (np. NSYearCalendarUnit | NSMonthCalendarUnit) i użycie zamiast tego components:fromDate
. Możesz przeczytać o tym w Date and Time Programming Guide.
Przy komponentach kalendarza jako typach pierwotnych porównania są efektywne.
W Swift można dostać tylko roku przez danego kodu
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy"
let dateStr = formatter.stringFromDate(NSDate())
print(dateStr)
wyjściowa:
Swift
Łatwiejszy sposób, aby uzyskać jakiekolwiek elementy data jako opcjonalna Stri ng.
extension Date {
// Year
var currentYear: String? {
return getDateComponent(dateFormat: "yy")
//return getDateComponent(dateFormat: "yyyy")
}
func getDateComponent(dateFormat: String) -> String? {
let format = DateFormatter()
format.dateFormat = dateFormat
return format.string(from: self)
}
}
print("-- \(Date().currentYear)") // result -- Optional("2017")
Czy stringFromDate działa poprawnie? Myślę, że mówi, że może nie odpowiadać selektorowi. Czy jest jakiś inny sposób? – hmthur
Zdecydowanie działa dobrze. '-stringFromDate:' jest metodą 'NSDateFormatter': http://developer.apple.com/library/ios/documentation/cocoa/reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/ instm/NSDateFormatter/stringFromDate: –
Format daty powinien mieć postać "yyyy" (małe litery). Wielkie litery podają rok tygodnia, w którym znajduje się data. Tak więc dla 1 stycznia 2011 roku @ "YYYY" zwraca rok 2010. – Anna