NSDateFormatter 与自定义字符串之间

NSDateFormatter with custom string inbetween

我是 iOS 应用开发的新手。如果有人帮助我,那就太好了。我有一个日期格式为 M/d/yy hh:mm aNSDateFormatter,它显示的正确结果为

3/24/2016 12:00AM. 

但我想添加字符串

at in between date and time. Expecting result as

3/24/2016 at 12:00AM

您只需要 M/d/yy' at 'hh:mm a 作为格式化程序。

请为 swift 语言使用以下代码。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "M/dd/yyyy"
var result: NSString = dateFormatter.stringFromDate(NSDate())
let timeFormatter = NSDateFormatter()
timeFormatter.dateFormat = "hh:mm a"
result = NSString(format: "%@ at %@", result,timeFormatter.stringFromDate(NSDate()))
print(result)

此外,如果您在 Objective C 中进行开发,那么您可以使用以下代码。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"M/dd/yyyy";
NSString *result = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:[NSDate date]]];
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
timeFormatter.dateFormat = @"hh:mm a";
result = [NSString stringWithFormat:@"%@ at %@",result,[timeFormatter stringFromDate:[NSDate date]]];
NSLog(@"%@",result);

您的格式可能类似于

M/dd/yyyy' at 'hh:mm a

2016 年 3 月 24 日 12:00 上午

您可以查看此 link 了解更多详情。 Format String Output String M/d/y 11/4/2012 MM/dd/yy 11/04/12 MMM d, ''yy Nov 4, '12 MMMM November E Sun EEEE Sunday 'Week' w 'of 52' Week 45 of 52 'Day' D 'of 365' Day 309 of 365 QQQ Q4 QQQQ 4th quarter m 'minutes past' h 9 minutes past 8 h:mm a 8:09 PM HH:mm:ss's' 20:09:00s HH:mm:ss:SS 20:09:00:00 h:mm a zz 8:09 PM CST h:mm a zzzz 8:09 PM Central Standard Time yyyy-MM-dd HH:mm:ss Z 2012-11-04 20:09:00 -0600

您可以根据需要组合任何选项。

为了正确地做到这一点,考虑到本地化,您也必须本地化 at

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateStyle = NSDateFormatterShortStyle;
dateFormatter.timeStyle = NSDateFormatterNoStyle;

NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
timeFormatter.dateStyle = NSDateFormatterNoStyle;
timeFormatter.timeStyle = NSDateFormatterShortStyle;

// load date format from localization files
NSString *dateFormat = @"%1$@ at %2$@"; //NSLocalizedString(@"my_date_format", @"My date format");

NSDate *date = [NSDate date];

NSString *localizedDate = [NSString stringWithFormat:dateFormat, [dateFormatter stringFromDate:date], [timeFormatter stringFromDate:date]];

NSLog(@"%@", localizedDate);

另请注意,我没有对日期格式进行硬编码,而是使用了用户定义的格式(语言和区域设置)。

NSDateFormatter *dFormatter = [NSDateFormatter new];
[dFormatter setDateFormat:@"MM/dd/yy hh:mm a"];

NSDate *date = [dFormatter dateFromString:dateStr];
[dFormatter setDateFormat:@"MM/dd/yy 'at' hh:mm a"];

NSString *dateStr = [dFormatter stringFromDate:date];

替换

"MM/dd/yy hh:mm a" 

的格式化程序
"MM/dd/yy 'at' hh:mm a"