2016-08-05 87 views
0

我搜索一些堆棧淬火將字符串轉換爲日期,這工作正常,但我將我的字符串日期轉換爲NSDate比它返回我零。這裏是我的代碼:將日期轉換爲不同日期格式的字符串ios?

NSString *dateStr = @"2016-07-29 09:05"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSSZ"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

我想將這個日期轉換爲yyyy-MM-ddTHH:mm:ss.SSSZ這個成員。

這裏有什麼問題?

+0

的〔轉換日期字符串的NSDate在目標C /的iOS]可能的複製(http://stackoverflow.com/questions/14398604/convert-date-string-to-nsdate-in-objective-c- ios) –

+0

問題很好輸出你的預期 –

+0

我的日期與我的格式不匹配,但是這種格式我想要的,他不能在毫秒內取00嗎? – Kabali

回答

3

不喜歡

NSString *dateStr = @"2016-07-29 09:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
// set the date format related to what the string already you have 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]]; 
// again add the date format what the output u need 
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
NSString *finalDate = [dateFormat stringFromDate:date]; 
NSLog(@"finalDate==%@",finalDate); 

輸出

enter image description here

+0

檢查更新的答案 –

+0

我可以得到零timstamp日期從這個?>意味着如何減去小時形式時間來獲得零tmistamp。 – Kabali

0

您的問題是您的日期格式@"yyyy-MM-ddTHH:mm:ss.SSSZ"與您的日期字符串@"2016-07-29 09:05"不匹配。您需要使用不同的日期格式。

工作拷貝 - 目標C

NSString *dateStr = @"2016-07-29T09:05:00.00000Z"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

斯威夫特2.x的

var dateformater = NSDateFormatter() 
dateformater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 
var dateString:String = "2016-07-29T09:05:00.00000Z" 
let date:NSDate = dateformater.dateFromString(dateString)! 

print(date) 
+0

但這是我想要的格式...我如何轉化爲它? – Kabali

0

只要改變你的formatterstyle如下

NSString *dateStr = @"2016-07-29 09:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

後日你可以將日期轉換成如下格式:

dateFormat.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; 
NSString *str = [dateFormat stringFromDate:date]; 
NSLog(@"%@",str); 
+0

但我想'yyyy-MM-ddTHH:mm:ss.SSSZ'日期格式 – Kabali

+0

@Kabali但輸入字符串不符合該格式。那麼你如何期待這種工作? – Droppy

+0

@Kabali你想要的答案在哪個甲酸鹽的日期或字符串? – ashmi123

0

試試這個代碼。

NSString *dateStr = @"2016-07-29 09:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
NSLog(@"the date is %@",date); 

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
NSString *currentDate = [dateFormatter stringFromDate:date]; 
NSDate *finaldate = [dateFormatter dateFromString:currentDate]; 
NSLog(@"CurrentDate:%@", finaldate); 
相關問題