NSDateFormatter 与自定义字符串之间
NSDateFormatter with custom string inbetween
我是 iOS 应用开发的新手。如果有人帮助我,那就太好了。我有一个日期格式为 M/d/yy hh:mm a
的 NSDateFormatter
,它显示的正确结果为
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"
我是 iOS 应用开发的新手。如果有人帮助我,那就太好了。我有一个日期格式为 M/d/yy hh:mm a
的 NSDateFormatter
,它显示的正确结果为
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"