当前位置:  开发笔记 > 前端 > 正文

将NSDate转换为NSString

如何解决《将NSDate转换为NSString》经验,为你挑选了6个好方法。

如何转换,NSDateNSString使得只有一年@"YYYY"格式输出到字符串?



1> 小智..:

怎么样...

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy"];

//Optionally for time zone conversions
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]];

NSString *stringFromDate = [formatter stringFromDate:myNSDateInstance];

//unless ARC is active
[formatter release];

Swift 4.2:

func stringFromDate(_ date: Date) -> String {
    let formatter = DateFormatter()
    formatter.dateFormat = "dd MMM yyyy HH:mm" //yyyy
    return formatter.string(from: date)
}


这将产生内存泄漏,因为格式化程序永远不会被释放.
不要在`NSDateFormatter`中使用`init`.据(http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/DeprecationAppendix/AppendixADeprecatedAPI.html%23//apple_ref/occ/instm [iOS的3.2之后去除]/NSDateFormatter/INIT).(如果你使用类方法,它会自动释放,你也不会有泄漏问题.)
永远不要忘记END的[格式化程序发布]!
@zekel我不确定文档曾经说过什么,但现在它在多个地方建议`init`.
真的建议在下面查看localizedStringFromDate
我会自动释放它(3年前)

2> Oded Ben Dov..:

我不知道我们都错过了这个:localizedStringFromDate:dateStyle:timeStyle:

NSString *dateString = [NSDateFormatter localizedStringFromDate:[NSDate date] 
                                                      dateStyle:NSDateFormatterShortStyle 
                                                      timeStyle:NSDateFormatterFullStyle];
NSLog(@"%@",dateString);

输出'13/06/12 00:22:39 GMT + 03:00'


比设置格式化器好多了!

3> Al Pascual..:

希望通过提供包括年,月,日在内的常规格式化程序来增加更多价值.您可以使用此格式化程序超过一年

[dateFormat setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"]; 

希望这有助于更多人

干杯Al



4> Nik Burns..:

NSDate网上有很多帮手,我倾向于使用:

https://github.com/billymeltdown/nsdate-helper/

自述文件摘要如下:

  NSString *displayString = [NSDate stringForDisplayFromDate:date];

这会产生以下类型的输出:

‘3:42 AM’ – if the date is after midnight today
‘Tuesday’ – if the date is within the last seven days
‘Mar 1’ – if the date is within the current calendar year
‘Mar 1, 2008’ – else ;-)



5> Dave Patrick..:

在Swift中:

var formatter = NSDateFormatter()
formatter.dateFormat = "yyyy"
var dateString = formatter.stringFromDate(YourNSDateInstanceHERE)



6> S R Nayak..:
  NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];
  [dateformate setDateFormat:@"yyyy"]; // Date formater
  NSString *date = [dateformate stringFromDate:[NSDate date]]; // Convert date to string
  NSLog(@"date :%@",date);

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有