34

日付を取得したいのですが、NSDate時間が必要ありません。例:

NSDate* today = [NSDate date];  // want to give 20-06-2012 only

NSDate時刻を表示せずに今日の日付を取得し、変数または文字列変数で使用したいと考えています。

4

4 に答える 4

4

この方法を使用する

- (NSString *)curentDateStringFromDate:(NSDate *)dateTimeInLine withFormat:(NSString *)dateFormat {
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

    [formatter setDateFormat:dateFormat];

    NSString *convertedString = [formatter stringFromDate:dateTimeInLine];

    return convertedString;
}

以下のように使用します

NSString *dateString = [self curentDateStringFromDate:[NSDate date] withFormat:@"dd-MM-yyyy"];
于 2014-08-18T08:25:40.423 に答える
1

誰かが興味を持っている場合は、Swift 拡張機能を実装しました。これにより、現在の日付が(タイムゾーンで)00:00:00 UTCに表示されます。これは、時間のない現在の日付の意味だと思います。

timeIntervalSinceReferenceDateそもそも日付オブジェクトを使用する理由である生をいじる必要がないため、@Murlakatamの回答よりも優れていると思います。

extension NSDate
{
    // Calendar objects are expensive to create to it's better to create and reuse only one.
    private static var cachedNoTimeZoneCalendar: NSCalendar = {
        let calendar = NSCalendar.currentCalendar()
        calendar.timeZone = NSTimeZone(forSecondsFromGMT: 0)
        return calendar
    }()

    func dateWithoutTime() -> NSDate?
    {
        let dateComponents = NSCalendar.currentCalendar().components([.Year, .Month, .Day], fromDate: self)
        return NSDate.cachedNoTimeZoneCalendar.dateFromComponents(dateComponents)
    }
}
于 2016-09-27T20:19:00.200 に答える