2012-11-22 94 views
16

我想从字符串“2012-11-22 10:19:04”以格式“2012年9月20日”显示日期。我怎样才能做到这一点?有没有iOS的内置方法?iOS:日期格式 - 2012年9月20日

+0

是你可以设置您的日期格式DD-MMM-YYYY –

+0

我该怎么办?你能提供代码吗? – Dev

回答

55
NSString *myString = @"2012-11-22 10:19:04"; 
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";  
NSDate *yourDate = [dateFormatter dateFromString:myString]; 
dateFormatter.dateFormat = @"dd-MMM-yyyy"; 
NSLog(@"%@",[dateFormatter stringFromDate:yourDate]); 

你的日志会打印这样的。 22-Nov-2012

+0

如果我需要'2012-11-22 at 11:23'怎么办?我该如何添加'at'中的 –

+0

@ EICaptainv2.0你可以在'at'里面加上格式。 'yyyy-MM-dd'在'HH:mm'这应该起作用。您可以将文本放在单引号内以将其恢复。 –

-3
NSDate *today = [NSDate date]; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"dd-mmm-yyyy"]; 
    NSString *dateString = [dateFormat stringFromDate:today]; 
    [dateFormat release]; 
+1

这只会回答问题的后半部分,另外还会使用错误的格式说明符。 – rmaddy

6

试试这个,

NSString *originalDateString = @"2012-11-22 10:19:04"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//2012-11-22 10:19:04 

然后用它来解析日期字符串,

NSDate *date = [dateFormatter dateFromString:originalDateString]; 

您可以创建一个新的dateformatter在新的格式打印或只是重用现有人为,

[dateFormatter setDateFormat:@"dd-MMM-yyyy"];//22-Nov-2012 
NSString *formattedDateString = [dateFormatter stringFromDate:date]; 
NSLog(@"Date in new format is %@", formattedDateString); 
+0

队友改变// 2012年9月20日至2012年11月22日队友.. :) –

+0

@ParasJoshi,谢谢。只是为了他的理解,我只是在那里引用他的问题。只是为了让他知道,等效的格式是。 – iDev

0

试试这个

NSString *str = @"2012-11-22 10:19:04"; 

    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

    NSDate *date = [dateFormatter dateFromString: str]; 

    dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormatter setDateFormat:@"dd-MMM-yyyy"]; 

    NSString *convertedString = [dateFormatter stringFromDate:date]; 
    NSLog(@"Converted String : %@",convertedString);// Print Log (Output) is 22-Nov-2012 

看到我的博客这一切信息My Blog Link with this types of method

0

您可以通过以下方式

 NSDateFormatter *dfTime = [[NSDateFormatter alloc] init]; 
     [dfTime setDateFormat:@"yyyy--MM-dd HH:mm:ss"]; 
     NSDate *dtTime = [dfTime dateFromString:<Your string>]; 
     NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
     [df setDateFormat:@"dd-MMM-yyyy"]; 
     <Your result string> = [df stringFromDate:dtTime]; 

Where <Your string> = @"2012-11-22 10:19:04" & 
<Your result string> will be your new string 

喜欢编程

2

接受的答案(实现此@Dinesh Raja)斯威夫特3:

override func viewDidLoad() { 
super.viewDidLoad() 
    print(self.getFormattedDate(myString: "2012-11-22 10:19:04")) 
} 

func getFormattedDate(myString: String) -> String{ 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
     let yourDate = dateFormatter.date(from: myString)! 
     dateFormatter.dateFormat = "dd-MMM-yyyy" 
     return dateFormatter.string(from: yourDate) 
    } 
相关问题