単一のNSDateのNSDateComponentsを取得するにはどうすればよいですか? NSDateの2つの日付、秒、分、時、日、月、年の違いの成分は欲しくないのですか?NSDateのNSDateComponents
21
A
答えて
38
の例では、リスト3、Apple docsにあります:あなたはcalendar unitsあなたがcomponents
メソッドの呼び出しで必要に「または」一緒に持って
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
[gregorian components:(NSDayCalendarUnit |
NSWeekdayCalendarUnit) fromDate:today];
NSInteger day = [weekdayComponents day];
NSInteger weekday = [weekdayComponents weekday];
注:は、日付のコンポーネントを取得します。 NSCalendarのメソッドを使用して
6
:
- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date
のような:スウィフトで
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDate *date = [NSDate date];
NSCalendar * cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [cal components:unitFlags fromDate:date];
0
は、あなたがしたいのコンポーネントは次のように渡されますから2.x。
let gregorianCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let weekdayHourMinutes = gregorianCalendar?.components([.Weekday, .Hour, .Minute], fromDate: date)
2
アップルデベロッパAPIリファレンスによると、DateComponents
はsecond
、minute
、hour
、day
、month
、year
インスタンスの特性を有しています。
次スウィフト3遊び場コードはDateComponents
を使用してDate
インスタンスから秒、分、時間、日、月、年のコンポーネントを取得する方法を示しています。
import Foundation
var calendar = Calendar(identifier: .gregorian)
calendar.timeZone = TimeZone(abbreviation: "CET")!
let date = Date()
// Get seconds, minutes, hours, day, month and year
let components = calendar.dateComponents([.second, .minute, .hour, .day, .month, .year], from: date)
let seconds = components.second
let minutes = components.minute
let hours = components.hour
let day = components.day
let month = components.month
let year = components.year
// Print components
print(String(reflecting: seconds)) // prints Optional(33)
print(String(reflecting: minutes)) // prints Optional(42)
print(String(reflecting: hours)) // prints Optional(22)
print(String(reflecting: day)) // prints Optional(17)
print(String(reflecting: month)) // prints Optional(12)
print(String(reflecting: year)) // prints Optional(2016)
/* ... */
// Set a formatter in order to display date
let formatter = DateFormatter()
formatter.dateStyle = .short
formatter.timeStyle = .long
formatter.timeZone = TimeZone(abbreviation: "CET")
formatter.locale = Locale(identifier: "fr_FR")
print(formatter.string(from: date)) // prints 17/12/2016 22:42:33 UTC+1
関連する問題
- 1. NSDateComponentsのNSDate
- 2. NSDateの結果 - (NSDate *)dateFromComponents:(NSDateComponents *)comps
- 3. NSDateComponentsをNSDateに変換する
- 4. NSDateComponentsからNSDateを作成しましたか?
- 5. NSDateをNSDateコンポーネントに変換するとNSDateComponentsの値が正しくありません
- 6. NSDateComponentsの曜日平日インデックス
- 7. 整数にNSDateComponentsの比較(または整数にNSDateComponentsを変換)
- 8. NSDateComponents TimeZoneについて
- 9. 「NSDate」
- 10. NSDate
- 11. NSDate
- 12. NSDateComponentsでタイムゾーンを設定するには
- 13. NSDateComponentsがシミュレータ上で動作する
- 14. NSDateフォーマッタのバグ
- 15. NSDate NSCalendarのdateFromComponent
- 16. NSDateへのNSTimeInterval
- 17. NSStringのNSDate
- 18. nsdateへのnsstring
- 19. NSDateへのTimeInterval
- 20. NSDateフォーマッタ
- 21. NSDate - timeIntevalSinceDate -
- 22. インクリメントNsdate
- 23. NSDateの日付コンポーネントと別のNSDateの時間コンポーネント
- 24. NSDateメモリリークの問題
- 25. NSDateのAVPlayer seek player
- 26. NSDate of scope
- 27. NSNumber&NSDate(swift 3)
- 28. UIDatePickerとNSDate
- 29. NSDate 1か月
- 30. NSDate from string
あなたはヘクタール、私を打ちます! +1 –
@martin clayton、こんにちは、NSDateComponentsに特定の時間、時間、秒を設定しましたが、今度はそれらのNSDateComponentsで日付を再作成したいと思います。どうやってやるの? –