【问题标题】:Converting a NSString into NSDate将 NSString 转换为 NSDate
【发布时间】:2011-04-24 01:55:00
【问题描述】:

我有日期字符串:2010 年 10 月 11 日星期一。如何从中创建 NSDate 对象,然后从中获取不同的组件,例如日、月、日、年。请注意,此字符串的格式/区域设置可能会在运行时更改。

【问题讨论】:

标签: ios objective-c nsstring nsdate


【解决方案1】:

另一种可能性:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *components = [calendar components:units fromDate:date];
NSInteger year = [components year];
...

【讨论】:

    【解决方案2】:

    使用 NSDateFormatter 创建 NSDate,然后您可以通过 NSDate 属性访问其组件(您需要调整下面的格式字符串):

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
    
    if(NSDate *myDate = [df dateFromString:string]) {
        //Do something with myDate
    }
    

    【讨论】:

    • 我正在尝试获取像 theDate.month 这样的月份,但它给了我编译错误。
    • 例如,您可以使用另一个具有自定义日期样式的 NSDateFormatter 将日期转换回 NSString。如果你想隔离它,你可以将它转换为月份数。检查 NSDateFormatter 参考。
    猜你喜欢
    • 2017-04-23
    • 2021-09-11
    • 2016-09-01
    • 2013-01-16
    • 2012-12-17
    • 2014-05-22
    相关资源
    最近更新 更多