Gün, ay ve yıldan NSDate
nasıl oluşturulabilir? Bunu yapmak için herhangi bir yöntem görünmüyor ve sınıf yöntemini kaldırmışlardı dateWithString
(bunu neden yaptılar ?!).NSDate tarih nesnesi nasıl oluşturulur?
cevap
Bunun için bir kategoriyi yazabilirim.
// NSDateCategory.h
#import <Foundation/Foundation.h>
@interface NSDate (MBDateCat)
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day;
@end
// NSDateCategory.m
#import "NSDateCategory.h"
@implementation NSDate (MBDateCat)
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
return [calendar dateFromComponents:components];
}
@end
böyle kullanın: Bu kod böyle görünüyor, o yaptı zaten yayınlanmıştır edilenlere NSDate *aDate = [NSDate dateWithYear:2010 month:5 day:12];
Sadece bir objektif C bir tarih oluşturmak için yazmak için gereken kod miktarını sadece darbeler uçurur! – TheLearner
Savunma argümanı, bir NSDate'in Dünya tarihinde bir anı benzersiz olarak tanımlaması olacaktır. Bir tarih yazmanın birçok yolu vardır (bugün ortak kullanımda, en azından Gregoryen, İbranice ve İslami takvimler), bu ayrı bir mantıksal şeydir. Kakao'da, bunu netleştirmek için bir NSCalendar nesnesi kullanırsınız. Ve maliyet şu ki, bir kod satırı olmak isteyip istemediğiniz altıya denk geliyor - ki bu, fluchtpunk'un yanıtında olduğu gibi - kütüphane koduna sindirmek için yeterince kolay. – Tommy
Sen NSDateComponents kullanabilirsiniz:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6];
[comps setMonth:5];
[comps setYear:2004];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *date = [gregorian dateFromComponents:comps];
[comps release];
Bu kabul edilen cevap olmalıdır – Woodstock
Biraz farklı bir cevap; demek bir dize tarih ne olduğunu tahmin etmek buluşsal yöntemlerini uygulamak o tanımlandı geçmişte çünkü gitti:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithIdentifier:@"en_US_POSIX"];
// see QA1480; NSDateFormatter otherwise reserves the right slightly to
// modify any date string passed to it, according to user settings, per
// it's other use, for UI work
dateFormatter.dateFormat = @"dd MMM yyyy";
// or whatever you want; per the unicode standards
NSDate *dateFromString = [dateFormatter dateFromString:stringContainingDate];
- 1. [NSDate tarih]
- 2. NSDate, başka bir NSDate
- 3. Karşılaştırmak için kullanıcının yerel saatinde (Swift2) bir NSDate nasıl oluşturulur?
- 4. NSDate - Gelecekte bir tarih belirlemek için
- 5. Symfony2/php dizinindeki DateTime nesnesi nasıl oluşturulur
- 6. Bir NSDate öğesinin [NSDate date] ile karşılaştırılması
- 7. Java'da BLOB nesnesi nasıl oluşturulur?
- 8. Swift'de NSDate nasıl oynanır?
- 9. NSUserDefaults'tan bir NSDate nesnesi nasıl alınır ve atar?
- 10. SWIFT NSTimeInteval'i NSDate dönüştürün
- 11. NSDate: Time
- 12. Akışta bir Tarih nesnesi nasıl kontrol edilir?
- 13. Jersey + Jackson tarih nesnesi bozukluğu
- 14. bir NSDate
- 15. Uzak geçmişte belirli bir tarih nasıl oluşturulur, BC çağında
- 16. Bir NSDate öğesinin NSDateComponents'ları
- 17. Std :: array nesnesi, başlatıcı listesiyle nasıl oluşturulur?
- 18. String'den HtmlUnit HTMLPage nesnesi nasıl oluşturulur?
- 19. Süreç boyunca bir singleton nesnesi nasıl oluşturulur?
- 20. Ruby'de bir JSON nesnesi nasıl oluşturulur
- 21. Swift 2.0'da JSON Nesnesi Nasıl Oluşturulur?
- 22. PIL/Python'da görüntü nesnesi nasıl oluşturulur
- 23. NSDate NSString nasıl dönüştürülür?
- 24. NSDate type değerini UILabel'e nasıl gösterebilirim?
- 25. SWIFT: NSDate nesnesine saatlerimi nasıl eklerim
- 26. İki tarih arasında rastgele bir tarih ve saat nasıl oluşturulur?
- 27. İki NSDate nesneleri
- 28. İki tarih arasındaki tüm tarihler nasıl oluşturulur?
- 29. NSDate yuvarlamadan saniyeyi sıfırlama
- 30. Yalnızca NSDate değişkeninde zamanı nasıl ayarlayabilirim?
dateWithString: Bir sabit dize biçimi varsa o zaman böyle bir şey kullanabilirsiniz tarihleri oluşturmak için kullanmak istediğiniz tarif etmek. Böyle bir tahmin her zaman özellikle doğru değildi ve insanların uygulamalarını yazmasını savunmanın iyi bir yolu değildi. Aşağıdaki cevaplar doğrudur - felsefi olarak, bir tarihin hangi tarihte kullanıldığını bilmeniz gerekir. Bu nedenle, Kakao sınıfları bunun etrafında düzenlenir. – Tommy