2

指定された時間を 24 時間形式に変換する必要がありますが、取得できませんでした。どこが間違っているのかわかりません。TimeStart が 1:15 PM の場合、13:15 になるはずです。

Item *item=[sectionItems objectAtIndex:itemId];
 NSLog(@"%@",item.TimeStart);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"HH:mm a"];
    NSString *formattedDateString = [dateFormatter stringFromDate:item.TimeStart];
    NSLog(@"%@",formattedDateString);

上記のコードには、Item クラスがあり、NSString*TimeStart;があります。フォーマットされたDateStringが表示されると、nullが返されます.どうすれば修正できますか?

4

3 に答える 3

6
 Item *item=[sectionItems objectAtIndex:itemId];
  NSLog(@"%@",item.TimeStart);

NSString *str = @"1:45.PM";// put here item.TimeStart

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"hh:mm.a"];// here give the format which you get in TimeStart

NSDate *date = [dateFormatter dateFromString: str];

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

NSString *convertedString = [dateFormatter stringFromDate:date];
NSLog(@"Converted String : %@",convertedString);
于 2012-10-23T05:09:39.607 に答える
1

私は単純にRemoveのようにDateFormatを設定[formatter setDateFormat:@"HH:mm"]; するだけですa

時間形式を確認するための caode の下は、24 時間または 12 時間です。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setDateStyle:NSDateFormatterNoStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
[formatter release];
NSLog(@"%@\n",(is24h ? @"YES" : @"NO"));
于 2012-10-23T04:59:40.530 に答える
0

これを使用して、24 時間形式を設定します。

[currentDate setDateFormat:@"yyyy-MM-dd HH:mm"];

また

[formatter setDateFormat:@"HH:mm"];

フォーマッターを使わずに

NSRange range;
range.location = 2;
range.length = 2;
NSString *dateString=[NSString stringWithFormat:@"%@:%@",[myString substringToIndex:2],          [myString substringWithRange:range]];

これは私のプロジェクトで使用しているコードであり、私のために働いています

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HH:mm"];
 NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];

NSLog(@"Current time date:%@", dateString);

出力:現在時刻日付:14:41

于 2012-10-23T05:11:12.617 に答える