55

NSDateFormatter を使用して iPhone アプリで作業しています。のような Web サービスから時間を取得してい"00:00:00", "16:00:00","15:30:00" and so onます。"00:00:00" to "12 AM"これらの時刻を、時刻がの場合、時刻が"16:00:00" to "4 PM"の場合、時刻が「15:30:00」から「午後 3 時 30 分」の場合に変換する必要があります。私はこれに以下のコードを使用しましたが、パスしたとき"16:00:00" the date returns null.

 NSString *dats1 = @"16:00:00";
 NSDateFormatter *dateFormatter3 = [[[NSDateFormatter alloc] init] autorelease];
 [dateFormatter3 setDateStyle:NSDateFormatterMediumStyle];  
 [dateFormatter3 setDateFormat:@"hh:mm:ss"]; 
 NSDate *date1 = [dateFormatter3 dateFromString:dats1];
 NSLog(@"date1 : %@", date1); **// Here returning (null)**

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"hh:mm a"];
 NSLog(@"Current Date: %@", [formatter stringFromDate:date1]); **// Here also returning (null)**
 [formatter release];

「00:00:00」を渡すと、「12 AM」が正しく返されます。誰でもこの問題を解決するのを手伝ってもらえますか? 前もって感謝します。

4

8 に答える 8

113

時刻形式が使用されている場合は、形式24hrsを使用してください"HH:mm:ss"。コードをテストして、それが機能しているかどうかをお知らせください。テストしましたが、戻ってきました"4 PM"

NSString *dats1 = @"16:00:00";
 NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
 [dateFormatter3 setDateStyle:NSDateFormatterMediumStyle];  
 [dateFormatter3 setDateFormat:@"HH:mm:ss"]; 
 NSDate *date1 = [dateFormatter3 dateFromString:dats1];
 NSLog(@"date1 : %@", date1); **// Here returning (null)**

 [dateFormatter setDateFormat:@"hh:mm a"];
 NSLog(@"Current Date: %@", [formatter stringFromDate:date1]); **// Here also returning (null)**
 [formatter release];

ありがとう。

于 2012-07-23T07:40:14.317 に答える
23

.ShortStyle現在のロケールに適応する を使用できます。

let timeFormatter = NSDateFormatter()
timeFormatter.dateStyle = .NoStyle
timeFormatter.timeStyle = .ShortStyle
timeFormatter.stringFromDate(NSDate())

どちらが返さ17:12れるか、または5:12 PM現在のデバイス ロケールに応じて異なります。

于 2016-01-20T14:48:28.287 に答える
15

なぜ再び割り当てているのNSDateFormatterですか?

あなたはそれをフォーマットする必要がありNSDateますNSString

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

    NSDate *date = [dateFormatter dateFromString:dats1];

    [dateFormatter setDateFormat:@"hh:mm a"];

    NSString *formattedDate = [dateFormatter stringFromDate:date];

    NSLog(@"%@",formattedDate);
于 2012-07-23T07:39:57.050 に答える
14

試してくださいHH:mm:ss(時間形式の大文字に注意してください)

于 2012-07-23T07:42:00.307 に答える
10

Swiftで入手したい人が助けてくれることを願っています

スイフト 5.1+

let dateFormatter = DateFormatter()
//if you want 12AM,5PM then use "hh mm a"
//if you want 00AM,17PM then use "HH mm a"
dateFormatter.dateFormat = "hh mm a"
let stringDate = dateFormatter.string(from: Date())
print(stringDate)
于 2015-04-22T10:54:30.867 に答える
3

日付形式は次のとおりです。

  [dateFormatter3 setDateFormat:@"HH:mm:ss"]; 

Date Format Pattern Dokuを確認してください

于 2012-07-23T07:40:38.577 に答える