Converting NSString to NSDate (and back again)

后端 未结 17 2675
-上瘾入骨i
-上瘾入骨i 2020-11-21 23:26

How would I convert an NSString like \"01/02/10\" (meaning 1st February 2010) into an NSDate? And how could I turn the NSDat

17条回答
  •  野性不改
    2020-11-22 00:11

    Swift 4 and later

    Updated: 2018

    String to Date

    var dateString = "02-03-2017"
    var dateFormatter = DateFormatter()
    
    // This is important - we set our input date format to match our input string
    // if the format doesn't match you'll get nil from your string, so be careful
    dateFormatter.dateFormat = "dd-MM-yyyy"
    
    //`date(from:)` returns an optional so make sure you unwrap when using. 
    var dateFromString: Date? = dateFormatter.date(from: dateString)
    

    Date to String

    var formatter = DateFormatter()
    formatter.dateFormat = "dd-MM-yyyy"
    guard let unwrappedDate = dateFromString else { return }
    
    //Using the dateFromString variable from before. 
    let stringDate: String = formatter.string(from: dateFromString)
    

    Swift 3

    Updated: 20th July 2017

    String to NSDate

    var dateString = "02-03-2017"
    var dateFormatter = DateFormatter()
    // This is important - we set our input date format to match our input string
    // if the format doesn't match you'll get nil from your string, so be careful
    dateFormatter.dateFormat = "dd-MM-yyyy"
    var dateFromString = dateFormatter.date(from: dateString)
    

    NSDate to String

    var formatter = DateFormatter()
    formatter.dateFormat = "dd-MM-yyyy"
    let stringDate: String = formatter.string(from: dateFromString)
    

    Swift

    Updated: 22nd October 2015

    String to NSDate

    var dateString = "01-02-2010"
    var dateFormatter = NSDateFormatter()
    // this is imporant - we set our input date format to match our input string
    dateFormatter.dateFormat = "dd-MM-yyyy"
    // voila!
    var dateFromString = dateFormatter.dateFromString(dateString)
    

    NSDate to String

    var formatter = NSDateFormatter()
    formatter.dateFormat = "dd-MM-yyyy"
    let stringDate: String = formatter.stringFromDate(NSDate())
    println(stringDate)
    

    Objective-C

    NSString to NSDate

    NSString *dateString = @"01-02-2010";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *dateFromString = [dateFormatter dateFromString:dateString];
    

    NSDate convert to NSString:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSString *stringDate = [dateFormatter stringFromDate:[NSDate date]];
    NSLog(@"%@", stringDate);
    

提交回复
热议问题