简体   繁体   English

将 nsstring 转换为 nsdate 时出现问题,反之亦然

[英]Problem while converting nsstring to nsdate and viceversa

I am facing a problem while converting from date to string and string to date.我在从日期转换为字符串和从字符串转换为日期时遇到问题。

code is:代码是:

NSDate *date=[NSDate date];
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/YYYY"];
NSString *dateString=[formatter stringFromDate:date];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/YYYY"];
NSDate *date2 = [dateFormat dateFromString:dateString];

while printing it is displaying the different date.打印时显示不同的日期。 Kindly help me请帮助我

NSDate always returns in GMT. NSDate 总是在 GMT 中返回。 So date2 is right.所以date2是对的。 Its in GMT.它在格林威治标准时间。 You can consider it as 27/05/2011 00:00:00 +0530 IST .您可以将其视为27/05/2011 00:00:00 +0530 IST There is nothing wrong with this.这并没有错。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/YYYY"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"IST"]];
NSLog(@"%@", [dateFormat stringFromDate:date2]);

Doing this should return in IST.这样做应该在 IST 中返回。

You can also get date2 like this,你也可以像这样得到date2

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSInteger flag = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *dateComponents = [gregorian components:flag fromDate:[NSDate date]];
NSDate *date2 = [gregorian dateFromComponents:dateComponents];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM