将日期和时间从 31 May 2016 04:30 PM(当前格式)转换为 2016-05-31T16:30:00.000+05:30(要求的格式)
coversion of date and time from 31 May 2016 04:30 PM(current format) to 2016-05-31T16:30:00.000+05:30(Required format)
你好,可以帮助我实现这是我在 2016 年 5 月 31 日拥有的字符串 04:30 PM(NSSTring) 2016-05-31T16:30:00.000+05:30(必需格式)
NSString *dateString = dateandtime;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
使用了以下代码,但 returns 无
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
NSString *currentDateString = @"2016-05-31T16:30:00.000+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];
NSLog(@"CurrentDate:%@", currentDate);
您可以使用此代码。
一些我尝试和工作的方式
NSString *myString = dateandtime;
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd MMM yyyy hh:mm a";
NSDate *yourDate = [dateFormatter dateFromString:myString];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ";
NSLog(@"%@",[dateFormatter stringFromDate:yourDate]);
当前格式字符串不包含任何时区信息,因此您必须在日期格式化程序中设置时区以及能够解析的语言环境独立于当前语言环境的字符串。
输入格式为dd MMM yyyy hh:mm a
NSString *dateString = @"31 May 2016 04:30 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:19800];
dateFormatter.dateFormat = @"dd MMM yyyy hh:mm a";
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
NSString *stringFromDate = [dateFormatter stringFromDate:dateFromString];
无论您做什么,如果用户不使用印度时区,并且如果用户在 phone 上使用 24 小时制而不是 AM/PM,请测试您的代码是否有效。我假设您的 "dateandtime" 是通过将 NSDate 转换为 NSString 创建的;最好不要这样做,而是从原始的 NSDate 开始。
你好,可以帮助我实现这是我在 2016 年 5 月 31 日拥有的字符串 04:30 PM(NSSTring) 2016-05-31T16:30:00.000+05:30(必需格式)
NSString *dateString = dateandtime;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
使用了以下代码,但 returns 无
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
NSString *currentDateString = @"2016-05-31T16:30:00.000+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];
NSLog(@"CurrentDate:%@", currentDate);
您可以使用此代码。
一些我尝试和工作的方式
NSString *myString = dateandtime;
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd MMM yyyy hh:mm a";
NSDate *yourDate = [dateFormatter dateFromString:myString];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ";
NSLog(@"%@",[dateFormatter stringFromDate:yourDate]);
当前格式字符串不包含任何时区信息,因此您必须在日期格式化程序中设置时区以及能够解析的语言环境独立于当前语言环境的字符串。
输入格式为dd MMM yyyy hh:mm a
NSString *dateString = @"31 May 2016 04:30 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:19800];
dateFormatter.dateFormat = @"dd MMM yyyy hh:mm a";
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
NSString *stringFromDate = [dateFormatter stringFromDate:dateFromString];
无论您做什么,如果用户不使用印度时区,并且如果用户在 phone 上使用 24 小时制而不是 AM/PM,请测试您的代码是否有效。我假设您的 "dateandtime" 是通过将 NSDate 转换为 NSString 创建的;最好不要这样做,而是从原始的 NSDate 开始。