在下面的代码中,我试图将NSString
转换为NSDate
并再次转换为另一种日期格式并将其发送到服务器。从NSString转换到NSDate时出错时间当设备时间格式为24小时
当我的设备时间格式为12小时时,以下代码工作得非常好。与dateformat到[dateFormatter setDateFormat:@"dd-MMM-yyyy hh:mm a"];
它给了我正确的日期和时间。
但是,只要我将设备时间格式更改为24小时。并将datefomatter更改为[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm a"];
它给出了错误的日期和时间(具体时间)。我已经显示了代码的日志值。
我查了很多计算器问题有关NSDateFormatter
和转换NSString
到NSDate
。但是我无法知道我在哪里出错,为什么当我的设备时间格式为24小时时,它给了我错误的时间。请帮我解决这个问题。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm a"];
NSString *fromTime = [NSString stringWithFormat:@"%@",@"04-Jul-2017 01:46 PM"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:fromTime];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSString *setdtFrom=[dateFormatter stringFromDate:dateFromString];
NSLog(@"From DateTime %@",setdtFrom);
以下日志显示日期和时间。当我的设备时间格式为12小时。这是正确的。
从日期时间2017-07-04T13:46:00
时候,我的设备时间格式为24小时。这是错误的(具体时间)。
从日期时间2017-07-04T12:46:00
转换24小时制没有必要的 'A' 在格式字符串 –
您的代码错误。 HH是24小时格式。但你在后面添加一个。你应该用hh来代替。 – GeneCode
@DSDharma如果我删除'a'它会给出空日期。尝试使用时间格式24小时的代码。在您的设备中。 –