簡體   English   中英

IOS中的日期時間轉換

[英]Date time Conversion in IOS

我知道這將是一個愚蠢的問題,但是我嘗試了所有事情,但仍然無法實現我想做的事情。

這是我的問題:

我想檢查兩個時間值和一個日期,我有一個像這樣的字符串“ 05.30 AM”。 我想將其轉換為時間格式[如果我可以完全按照現在的方式轉換,則更好。 我知道有一種方法可以使用以下方法比較兩個時間值:

NSComparisonResult result = [date1 compare:date2];

我按照下面的代碼將我的字符串值轉換為時間格式,但它僅返回null。

請引導我解決此問題:

NSString* tim = @"11:12 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];

NSDate *formatedTime= [formatter dateFromString:tim];
NSLog(@"TIME : %@",formatedTime);

對於這種特殊情況(使用tim格式化的方式),您只缺少一行: [formatter setDateStyle:NSDateFormatterNoStyle]; 這將告訴formatter不要在字符串中查找date

NSString* tim = @"11:12 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateStyle:NSDateFormatterNoStyle];

NSDate *formatedTime= [formatter dateFromString:tim];
NSLog(@"TIME : %@",formatedTime);

您需要設置格式。

[formatter setDateFormat:@"hh:mm a"];
NSString* tim = @"11:12 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm a"];

NSDate *formatedTime= [formatter dateFromString:tim];
NSLog(@"TIME : %@",formatedTime);

但是你會收到

時間:1999-12-31 23:12:00 +0000

由於年份不明。

首先,您需要像這樣格式化String

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss ZZZ";
[formatter dateFromString:@"Fri, 25 Jan 2014 5:30:22 +0000"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM