Objective c 是否在xcode中将日期转换为MM/dd/yyyy格式?
我有一个Objective c 是否在xcode中将日期转换为MM/dd/yyyy格式?,objective-c,ios,nsdate,uidatepicker,Objective C,Ios,Nsdate,Uidatepicker,我有一个UIDatePicker,我正在以yyyy-MM-dd格式从中获取所选日期。现在我想将其转换为MM/dd/yyyy格式。我该怎么做 NSDateFormatter *df=[[[NSDateFormatter alloc]init] autorelease]; df.dateFormat = @"yyyy-MM-dd"; NSArray *temp=[[NSString stringWithFormat:@"%@",[df stringFromDate:DatePicker.date]]
UIDatePicker
,我正在以yyyy-MM-dd
格式从中获取所选日期。现在我想将其转换为MM/dd/yyyy
格式。我该怎么做
NSDateFormatter *df=[[[NSDateFormatter alloc]init] autorelease];
df.dateFormat = @"yyyy-MM-dd";
NSArray *temp=[[NSString stringWithFormat:@"%@",[df stringFromDate:DatePicker.date]] componentsSeparatedByString:@""];
[dateString2 release];
dateString2=nil;
dateString2= [[NSString alloc]initWithString:[temp objectAtIndex:0]];
NSLog(@"%@",dateString2);
我得到的是2012-10-30,但我想要的是2012年10月30日。df.dateFormat=@“MM/dd/yyyy” 每行见说明或介绍
NSString *str = @"2012-10-30"; /// here this is your date with format yyyy-MM-dd
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; // here we create NSDateFormatter object for change the Format of date..
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; //// here set format of date which is in your output date (means above str with format)
NSDate *date = [dateFormatter dateFromString: str]; // here you can fetch date from string with define format
dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];// here set format which you want...
NSString *convertedString = [dateFormatter stringFromDate:date]; //here convert date in NSString
NSLog(@"Converted String : %@",convertedString);
看看结果如何:
NSDateFormatter* df = [[[NSDateFormatter alloc]init] autorelease];
df.dateFormat = @"MM/dd/yyyy";
NSString* dateString = [df stringFromDate:datePicker.date]; // Don't use leading caps on variables
NSLog(@"%@", dateString);
最初被接受的答案做了一些额外的事情: 1) 它分配两个非必需的NSDateFormatter实例。NSDateFormatter的创建成本很高 2) 最好在使用完日期格式化程序后显式发布,而不是使用autorelease延迟发布
//get datepicker date (NSDate *)
NSDate *datePickerDate = [myDatePicker date];
//create a date formatter
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//set its format as the required output format
[formatter setDateFormat:@"MM/dd/yyyy"];
//get the output date as string
NSString *outputDateString = [formatter stringFromDate:datePickerDate];
//release formatter
[formatter release];
享受我使用带有选项NSISO8601DateFormatWithDashSeparatorInDate的代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString * stringformat = [NSDateFormatter dateFormatFromTemplate:@"MMddy" options:NSISO8601DateFormatWithDashSeparatorInDate locale:[NSLocale systemLocale]];
[dateFormatter setDateFormat:stringformat];
NSDate *d = [NSDate date]; // or set your date
NSLog(@"date in format %@", [dateFormatter stringFromDate:d]); // date in format 2018-06-20
这与Xcode无关,而是与Cocoa Touch框架有关。附录F是你的朋友吗,更改日期格式化程序格式?@HotLicks嘿,伙计,我只是把这个答案和说明一起发布,这样任何人都可以很容易地理解整个流程,所以我把这个流程放在这里…:)@热舔是因为原始问题源于yyyy-MM-dd。此答案涵盖了这一点。所以,如果你投了反对票,那就请你。解释原因。@Da_吸烟——最初的问题来自一个来自UIDatePicker的NSDate。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yyyy"];
//get datepicker date (NSDate *)
NSDate *datePickerDate = [myDatePicker date];
//create a date formatter
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//set its format as the required output format
[formatter setDateFormat:@"MM/dd/yyyy"];
//get the output date as string
NSString *outputDateString = [formatter stringFromDate:datePickerDate];
//release formatter
[formatter release];
- (void)showTime {
NSDate *now = [NSDate date];
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"HH:mm:ss"];
// you label
_time.text = [dateFormatter stringFromDate:now];
}
- (void)showDate {
NSDate *now = [NSDate date];
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
// you label
_date.text = [dateFormatter stringFromDate:now];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.showTime;
self.showDate;
}
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString * stringformat = [NSDateFormatter dateFormatFromTemplate:@"MMddy" options:NSISO8601DateFormatWithDashSeparatorInDate locale:[NSLocale systemLocale]];
[dateFormatter setDateFormat:stringformat];
NSDate *d = [NSDate date]; // or set your date
NSLog(@"date in format %@", [dateFormatter stringFromDate:d]); // date in format 2018-06-20