Ios nsdate格式化程序返回nil,如何在mm dd yy AM/PM中设置日期格式化
我有一个日期字符串,如下所示:Ios nsdate格式化程序返回nil,如何在mm dd yy AM/PM中设置日期格式化,ios,objective-c,nsdate,nsdateformatter,Ios,Objective C,Nsdate,Nsdateformatter,我有一个日期字符串,如下所示: Printing description of dateTimeString: 2014-07-15 04:15:00 我试图在2014年7月15日凌晨4:15将其转换。 我正在使用的代码: NSString *dateTimeString = appointment.start_time;; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTi
Printing description of dateTimeString:
2014-07-15 04:15:00
我试图在2014年7月15日凌晨4:15将其转换。
我正在使用的代码:
NSString *dateTimeString = appointment.start_time;;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
NSDate *date = [dateFormatter dateFromString:dateTimeString];//date is nil
能不能请一些人帮我设置所需格式的日期
谢谢您没有使用正确的格式字符串:
NSString *dateTimeString = appointment.start_time;;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:dateTimeString];
这将创建正确的NSDate
对象
关于将其格式化以呈现给您的用户,我非常强调您应该而不是使用静态格式,并要求系统为您提供正确的格式
NSString *formatttedDate = [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle] timeStyle:NSDateFormatterShortStyle];
但如果需要,只需使用特定的日期格式:
[dateFormatter setDateFormat:@"MM-dd-yyyy h:mm a"];
此格式将为您提供所需的日期。我认为这对您有所帮助
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"ddMMyyyy||HHmmss"];
NSDate *now = [NSDate date];
NSString *retStr = [format stringFromDate:now];
该格式字符串与输入字符串匹配吗?感谢您的提示,让我尝试使用am pm格式。您的输入字符串格式应与所需的日期格式完全相同。真正的提示是,您需要使用两种日期格式:字符串->日期->字符串(am/pm不是提示的一部分)。谢谢。我已经能够使用两种日期格式按需要进行转换。然而,am/pm并没有自动追加。我正在尝试使用HH:mm athank you,它解决了我的问题。我可以控制am/pm到am/pm吗?这取决于您的本地情况,但我不能强调您不应该使用静态日期格式。这与问题中要求的任何日期格式都不匹配。