NSDateFormatter 和 yyyy-MM-dd

发布于 2024-10-18 11:22:24 字数 517 浏览 1 评论 0原文

我正在尝试采用“2/22/11”格式的 NSString 日期并将其转换为以下格式: 2011-02-22

这是我的代码:

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
dateTemp = [dateFormat dateFromString:newInvoice.date];
newInvoice.date = [dateFormat stringFromDate:dateTemp];

newInvoice.date 以 NSString 开头等于“2/22/11”。 dateTemp 最终为 NIL。 newInvoice.date 也以 NIL 结束。

我一生都无法弄清楚为什么。

I'm trying to take a NSString date in the format "2/22/11" and convert it to this format: 2011-02-22

This is my code:

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
dateTemp = [dateFormat dateFromString:newInvoice.date];
newInvoice.date = [dateFormat stringFromDate:dateTemp];

newInvoice.date starts as an NSString equal to "2/22/11". dateTemp ends up NIL. newInvoice.date ends up NIL as well.

I can't for the life of me figure out why.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

且行且努力 2024-10-25 11:22:24

您面临这个问题是因为您的日期格式化程序不正确。假设您的 newInvoice.date 变量存储“11:02:23”,您的 dateFormatter 应该是 @“yy:MM:dd”,如果您的 newInvoice.date 变量存储“2 /22/11" 那么你的 dateFormatter 应该是 @"MM/dd/yy"

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];

[dateFormat1 setDateFormat:@"MM/dd/yy"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd"];

dateTemp = [dateFormat1 dateFromString:newInvoice.date];
newInvoice.date = [dateFormat2 stringFromDate:dateTemp];

两种格式都应该根据你的要求以获得正确的结果

You are facing this problem because your date formatter is not correct.Suppose your newInvoice.date variable store "11:02:23" the your dateFormatter should be @"yy:MM:dd" and if your newInvoice.date variable store"2/22/11" then your dateFormatter should be @"MM/dd/yy"

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];

[dateFormat1 setDateFormat:@"MM/dd/yy"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd"];

dateTemp = [dateFormat1 dateFromString:newInvoice.date];
newInvoice.date = [dateFormat2 stringFromDate:dateTemp];

both format should be according to your requirement to get the correct result

梦一生花开无言 2024-10-25 11:22:24

这应该可以正常工作。我已经设置了日期样式。您可以将 NSDateFormatterShortStyle 更改为其他内容。另请检查您的 newInvoice.date 格式。

NSDate *dateTemp = [[NSDate alloc] init];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

[dateFormat setDateStyle: NSDateFormatterShortStyle];

dateTemp = [dateFormat dateFromString: newInvoice.date];

[dateFormat setDateFormat:@"yyyy-MM-dd"];

newInvoice.date = [dateFormat stringFromDate:dateTemp];

This should work fine. I have set Date style. You can change NSDateFormatterShortStyle to something else. Also check your newInvoice.date format.

NSDate *dateTemp = [[NSDate alloc] init];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

[dateFormat setDateStyle: NSDateFormatterShortStyle];

dateTemp = [dateFormat dateFromString: newInvoice.date];

[dateFormat setDateFormat:@"yyyy-MM-dd"];

newInvoice.date = [dateFormat stringFromDate:dateTemp];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文