如何在iPhone上以AM/PM格式打印时间?

5

我想从日期选择器中打印时间,并且包括上午/下午。我可以打印出时间,但从来没有打印过上午/下午。我该怎么做?

6个回答

22

使用以下代码:

    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:@"hh:mm a"];   
    NSString *str_date = [dateFormatter stringFromDate:[NSDate date]];
    NSLog(@"str_date:%@",str_date);

谢谢,这解决了我的问题 :)我想问你一个问题:如何解析来自API的日期,例如 2014-03-06T00:00:00+0200这是我的代码: dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];但它总是返回nil,你能帮我吗? - Atef

4

你可以使用这个文档获得更多信息:NSDateFormatter 类参考。 以下是一个例子:

NSDate* date = [NSDate date];
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];

[formatter setTimeStyle:NSDateFormatterFullStyle];
NSLog(@"date=%@",[dateFormatter stringFromDate:date]);

是的,它非常帮助我......我实际上只想调整日期选择器的大小,并使用12小时和24小时时间格式.. 它确实帮了我大忙.. 谢谢 - RJ168

2
您可以按照以下方式设置您的DateFormatter的amSymbol和pmSymbol:
Xcode 8.3 • Swift 3.1
let formatter = DateFormatter()
formatter.dateFormat = "h:mm a 'on' MMMM dd, yyyy"
formatter.amSymbol = "AM"
formatter.pmSymbol = "PM"

let dateString = formatter.string(from: Date())
print(dateString)   // "4:44 PM on June 23, 2016\n"

编辑: Objective C 代码
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.timeZone = [NSTimeZone systemTimeZone];
df.AMSymbol = @"AM";
df.PMSymbol = @"PM";
df.dateFormat = "h:mm a 'on' MMMM dd, yyyy"
NSString *stringDate = [df stringFromDate:dateFromString];

参考链接:

https://dev59.com/bVwZ5IYBdhLWcg3wbv3q#31469237


1
日期转字符串
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@“dd-MMM”];
cell.dateLabel.text = [formatter stringFromDate:item.pubDate]

日期格式符号 Unicode日期格式化页面上的表格足以让你构建自己想要的日期格式字符串...
Pattern Result (in a particular locale)
yyyy.MM.dd G ‘at’ HH:mm:ss zzz  1996.07.10 AD at 15:08:56 PDT
EEE, MMM d, ‘’yy    Wed, July 10, ‘96
h:mm a  12:08 PM
hh ‘o’‘clock’ a, zzzz   12 o’clock PM, Pacific Daylight Time
K:mm a, z   0:00 PM, PST
yyyyy.MMMM.dd GGG hh:mm aaa 01996.July.10 AD 12:08 PM
Hope this is useful to someone out there.

使用以下链接获取更多详细信息。

http://benscheirman.com/2010/06/dealing-with-dates-time-zones-in-objective-c/

这确实帮了我很多。它非常简单。


0

要打印 AM/ PM,请使用参数 a/aa/aaa,所有这些参数都可以正常工作。

NSDateFormatter *myDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[myDateFormatter setDateFormat:@"hh:mm aaa"]; //a,aa or aa all will work.
[myDateFormatter setDateFormat:@"hh:mm aa"];
NSString *myDate = [myDateFormatter stringFromDate:[NSDate date]];
NSLog(@"myDate is :%@",myDate);

0

你可以在 Swift 5 中使用

    var strDate1:String = "2019-12-19 05:42:04";
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let dateObj = dateFormatter.date(from: strDate1)
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss a"
    let strigDate =  dateFormatter.string(from: dateObj!)

输出:2019-12-19 05:42:04 AM


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接