【问题标题】:Turning NSDate into NSString [duplicate]将 NSDate 转换为 NSString [重复]
【发布时间】:2012-12-17 22:28:19
【问题描述】:

可能重复:
Convert NSDate to NSString
convert string to nsdate

目前我有这个代码。用于将事件添加到日历中。

[...]
event.startDate = [[NSDate date] dateByAddingTimeInterval:86400];
event.endDate = [[NSDate date] dateByAddingTimeInterval:90000];

我需要的是添加到特定开始日期和结束日期的代码,这就是 NSString 派上用场的地方。但到目前为止,我还没有成功转换它。

【问题讨论】:

    标签: objective-c nsstring nsdate


    【解决方案1】:

    参考此代码:

    NSString 到 NSDate

    NSString *dateString = @"01-02-2010";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    // this is imporant - we set our input date format to match our input string
    // if format doesn't match you'll get nil from your string, so be careful
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *dateFromString = [[NSDate alloc] init];
    // voila!
    dateFromString = [dateFormatter dateFromString:dateString];
    [dateFormatter release];
    

    NSDate 转换为 NSString:

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

    希望对你有帮助

    【讨论】:

    • 谢谢!我如何将它添加到日历中? (关于我之前发布的代码)
    • @GThamanTitan : 我猜你已经添加到活动日历中了,你到底想要什么?
    • 我的意思是我现在应该在event.StartDate代码中写什么? (而不是 DateByAddingTimeInterval)
    • 好的,所以你得到的是NSString格式,你想把它转换成NSDate,你得到的NSString是什么格式,试试NSLog吧
    • 我把代码改成了 event.startDate = [[NSDate date] dateFromString:@"dateString"];并且应用程序崩溃了。
    【解决方案2】:

    将 NSDate 转换为 NSString 为

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    
    NSString *string = [dateFormatter stringFromDate:date];
    [dateFormatter release];
    

    【讨论】:

      【解决方案3】:

      如果您需要“1937 年 11 月 23 日”这样的格式,这是一个示例:

      NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
      formatter.dateStyle= NSDateFormatterMediumStyle;
      NSString* string= [formatter stringFromDate: date];
      

      查看reference 了解其他样式。如果你需要另一种没有常量的样式,你可以使用日期格式,在这种情况下是:

      formatter.dateFormat= @"MMM dd, yyyy"; // same as medium style
      

      但首选方式是使用样式,只有在没有属性样式时才使用格式。

      【讨论】:

        猜你喜欢
        • 2013-01-16
        • 1970-01-01
        • 2014-05-11
        • 2012-08-20
        • 1970-01-01
        • 2011-04-24
        • 2017-04-23
        相关资源
        最近更新 更多