我基本上需要分别获取当前日期和时间,格式为:
2009-04-26 11:06:54
以下代码,来自同一主题的另一个问题,生成
now: |2009-06-01 23:18:23 +0100| dateString: |Jun 01, 2009 23:18| parsed: |2009-06-01 23:18:00 +0100|
这几乎是我正在寻找的,但我想将日期和时间分开。
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, yyyy"];
NSDate *parsed = [inFormat dateFromString:dateString];
NSLog(@"\n"
"now: |%@| \n"
"dateString: |%@| \n"
"parsed: |%@|", now, dateString, parsed);
答案 0 :(得分:194)
这是我用的:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];
NSLog(@"\n"
"theDate: |%@| \n"
"theTime: |%@| \n"
, theDate, theTime);
[dateFormat release];
[timeFormat release];
[now release];
答案 1 :(得分:72)
iPhone格式字符串位于Unicode format。链接后面是一张表格,解释了上述所有字母的含义,以便您可以建立自己的字母。
当然,当你完成它们时,不要忘记发布日期格式化程序。上面的代码泄漏了format
,now
和inFormat
。
答案 2 :(得分:12)
您可以使用此方法将日期传递给它
-(NSString *)getDateFromString:(NSString *)string
{
NSString * dateString = [NSString stringWithFormat: @"%@",string];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"your current date format"];
NSDate* myDate = [dateFormatter dateFromString:dateString];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"your desired format"];
NSString *stringFromDate = [formatter stringFromDate:myDate];
NSLog(@"%@", stringFromDate);
return stringFromDate;
}
答案 3 :(得分:11)
NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
[dateformat setDateFormat:@"Your Date Format"];
将格式设置为return ....
yyyy-MM-dd
返回2015-12-17
日期
yyyy-MMM-dd
返回2015-Dec-17
日期
yy-MM-dd
返回15-12-17
日期
dd-MM-yy
返回17-12-15
日期
dd-MM-yyyy
返回17-12-2015
日期
yyyy-MMM-dd HH:mm:ss
返回2015-Dec-17 08:07:13
日期和时间
yyyy-MMM-dd HH:mm
返回2015-Dec-17 08:07
日期和时间
谢谢.....
答案 4 :(得分:4)
没什么新鲜但仍想分享我的方法:
+(NSString*) getDateStringFromSrcFormat:(NSString *) srcFormat destFormat:(NSString *)
destFormat scrString:(NSString *) srcString
{
NSString *dateString = srcString;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//[dateFormatter setDateFormat:@"MM-dd-yyyy"];
[dateFormatter setDateFormat:srcFormat];
NSDate *date = [dateFormatter dateFromString:dateString];
// Convert date object into desired format
//[dateFormatter setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setDateFormat:destFormat];
NSString *newDateString = [dateFormatter stringFromDate:date];
return newDateString;
}
答案 5 :(得分:3)
对于swift
var dateString:String = "2014-05-20";
var dateFmt = NSDateFormatter()
// the format you want
dateFmt.dateFormat = "yyyy-MM-dd"
var date1:NSDate = dateFmt.dateFromString(dateString)!;
答案 6 :(得分:0)
extension Date {
func toString(template: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: template, options: 0, locale: NSLocale.current)
return formatter.string(from: self)
}
}
let now = Date()
let nowStr0 = now.toString(template: "EEEEdMMM") // Tuesday, May 9
let nowStr1 = now.toString(template: "yyyy-MM-dd") // 2017-05-09
let nowStr2 = now.toString(template: "HH:mm:ss") // 17:47:09
使用模板来满足您的需求。示例和文档here可帮助您构建所需的模板。
如果您计划在DateFormatter
中使用TableView
,则可能需要缓存toString(template: String)
。
为了给出一个想法,使用上面的myFormatter.string(from: Date)
函数循环超过1000个日期花了 0.5秒,而使用self.navigationItem.leftBarButtonItem = nil;
0.05秒。
答案 7 :(得分:-6)
NSDate *date = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"]
NSString *dateString = [df stringFromDate:date];
[df setDateFormat:@"hh:mm:ss"];
NSString *hoursString = [df stringFromDate:date];
多数民众赞成,你得到了你想要的一切。