4

ある日付形式を別の日付形式に変換するコードを以下に記述します。しかし、AM ストリングは機能し、PM は機能しませんでした。助けてください-

dateTime=@"2013-01-24 18:30 PM";
//dateTime=@"2013-01-24 06:30 AM";
NSDateFormatter *dtFormatter=[[NSDateFormatter alloc]init];
[dtFormatter setDateFormat:@"yyyy-MM-dd hh:mm a"];
NSDate *AptDate=[dtFormatter dateFromString:dateTime];
[dtFormatter setDateFormat:@"MMM dd,yyyy hh:mm a"];
NSString *strDate=[dtFormatter stringFromDate:AptDate];

ここで、PM 形式を使用する場合、AptDate 変数を null として取得します

4

3 に答える 3

12

時間は 24 時間形式であるためHH、代わりにを使用する必要があります。hh

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

完全なコードは次のようになります。

*dateTime=@"2013-01-24 18:30 PM";
//dateTime=@"2013-01-24 06:30 AM";
NSDateFormatter *dtFormatter=[[NSDateFormatter alloc]init];
[dtFormatter setDateFormat:@"yyyy-MM-dd HH:mm a"];
NSDate *AptDate=[dtFormatter dateFromString:dateTime];
[dtFormatter setDateFormat:@"MMM dd,yyyy hh:mm a"];
NSString *strDate=[dtFormatter stringFromDate:AptDate];

NSLog(@"===> %@",AptDate);
NSLog(@"===> %@",strDate);

出力:

===> 2013-01-24 07:00:00 +0000
===> Jan 24,2013 12:30 PM
于 2013-01-24T10:01:10.397 に答える
0

Accepted answerのSwift 3バージョンを探している人向け。

let date1            = Date()
let formatter        = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd hh:mm:ss a"
print(formatter.string(from: date1))

let dateTime            = "2013-01-24 18:30 PM"
let dateFormater        = DateFormatter()
dateFormater.dateFormat = "yyyy-MM-dd HH:mm a"
let AptDate             = dateFormater.date(from: dateTime)
dateFormater.dateFormat = "MMM dd,yyyy hh:mm a"
let strDate             = dateFormater.string(from: AptDate!)

print("===> \(AptDate!)")
print("===> \(strDate)")
于 2016-11-18T08:37:33.757 に答える