在 xcode 中转换 MM/dd/yyyy 格式的日期?

Posted

技术标签:

【中文标题】在 xcode 中转换 MM/dd/yyyy 格式的日期?【英文标题】:Convert date in MM/dd/yyyy format in xcode? 【发布时间】:2012-10-19 18:58:09 【问题描述】:

我有一个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 日。

【问题讨论】:

这与 Xcode 无关,与 Cocoa Touch 框架有关。 unicode.org/reports/tr35/tr35-10.html附录F是你的朋友 呃,更改日期格式化程序格式? 【参考方案1】:

请参阅每一行的说明或介绍

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);

【讨论】:

@HotLicks 嘿,伙计,我只是用指令发布这个答案,这样任何人都可以轻松理解整个流程,所以我只是把这个 FLOW... :) @HotLicks 因为最初的问题来自 yyyy-MM-dd。这个答案涵盖了这一点。所以,如果你投了反对票,请。解释原因。 @Da_smokes -- 最初的问题来自一个来自 UIDatePicker 的 NSDate。【参考方案2】:

df.dateFormat = @"MM/dd/yyyy";

【讨论】:

【参考方案3】:
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"MM/dd/yyyy"];

【讨论】:

【参考方案4】:

只是看看结果如何:

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);

【讨论】:

【参考方案5】:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    
[formatter setDateFormat:@"MM/dd/yyyy"];    

【讨论】:

【参考方案6】:

最初接受的答案做了一些额外的事情:

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];

【讨论】:

【参考方案7】:
- (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;

享受

【讨论】:

【参考方案8】:
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);

【讨论】:

【参考方案9】:

我使用带有 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 中转换 MM/dd/yyyy 格式的日期?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 将日期字符串从格式 mm/d/yyyy 和 mm/dd/yyyy 转换为 dd.mm.yyyy

使用 PHP 将 mm/dd/yyyy 格式转换为纪元

将格式 MM/DD/YYYY 的日期转换为 MySQL 日期 [重复]

将 JSON 日期转换为 MM/DD/YYYY 格式?

将 mm/dd/yyyy 转换为 yyyymmdd (VB.NET)

dd/mm/yyyy 是啥日期格式?