gpt4 book ai didi

cocoa - 如何将日期字符串转换为字符串(yyyy-MM-dd)。这样做时,我得到空值?

转载 作者:行者123 更新时间:2023-12-03 16:30:07 28 4
gpt4 key购买 nike

我的数据为 customerFromDate“01 Apr 2010 ”和 customerToDate“30 Apr 2010 ”,这是一个字符串。

我想将该格式转换为字符串“yyyy-MM-dd”,但这样做时我得到了空值。请参阅我尝试过的以下代码。

printf("\n customerFromDate %s",[customerStatementObj.customerFromDate UTF8String]);
printf("\n customerToDate %s",[customerStatementObj.customerToDate UTF8String]);
/*
prints as the following
customerFromDate 01 Apr 2010
customerToDate 30 Apr 2010
*/

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *fromDate=[[NSDate alloc]init];
fromDate = [dateFormatter dateFromString:customerStatementObj.customerFromDate];
printf("\n fromDate: %s",[fromDate.description UTF8String]);
NSString *fromDateString=[dateFormatter stringFromDate:fromDate];
printf("\n fromDateString: %s",[fromDateString UTF8String]);
[dateFormatter release];

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc]init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd"];
NSDate *toDate=[[NSDate alloc]init];
toDate = [dateFormatter1 dateFromString:customerStatementObj.customerToDate];
printf("\n toDate: %s",[toDate.description UTF8String]);
NSString *toDateString=[dateFormatter1 stringFromDate:toDate];
printf("\n toDateString: %s",[toDateString UTF8String]);
[dateFormatter1 release];

谢谢你,马丹·莫汉。

最佳答案

几点说明:

您需要两个不同的 NSDateFormatter。一种指定输入日期格式,另一种指定输出日期格式。

    NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd MMM yyyy"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"yyyy-MM-dd"];

您可以为 fromDatetoDate 重用这些格式化程序。

其次,dateFromString: 返回一个分配的、自动释放的 NSDate 对象。您正在泄漏您手动分配的内容。

#import <Cocoa/Cocoa.h>

int main (int argc, char const *argv[])
{
NSAutoreleasePool *pool = [NSAutoreleasePool new];

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd MMM yyyy"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"yyyy-MM-dd"];

NSDate *fromDate = [inputFormatter dateFromString:@"01 Apr 2010"];
NSDate *toDate = [inputFormatter dateFromString:@"30 Apr 2010"];

printf("\n fromDate: %s",[fromDate.description UTF8String]);
NSString *fromDateString=[outputFormatter stringFromDate:fromDate];
printf("\n fromDateString: %s",[fromDateString UTF8String]);

printf("\n toDate: %s",[toDate.description UTF8String]);
NSString *toDateString=[outputFormatter stringFromDate:toDate];
printf("\n toDateString: %s",[toDateString UTF8String]);

[inputFormatter release];
[outputFormatter release];

[pool drain];
return 0;
}

关于cocoa - 如何将日期字符串转换为字符串(yyyy-MM-dd)。这样做时,我得到空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2742713/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com