我有时间在甲酸盐“17-02-2014 05:00 PM”,现在我想在17-02-2014 05:00:00 +000转换它。我正在使用代码。 在此日期= 17-02-2014和时间= 05:00 PM
-(NSDate*)dateFromDate:(NSString*)date andTime:(NSString*)time{
NSString *eventDttm = [[NSString alloc] init];
eventDttm = [NSString stringWithFormat:@"%@ %@",date,time];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *local = [NSLocale currentLocale];
[dateFormatter setLocale:local];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm a"];
//conversion of NSString to NSDate
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:eventDttm];
return dateFromString;
}
使用此代码我将获得17-02-2014 11:00:00 +000
答案 0 :(得分:4)
您可以使用此代码
NSString *str=@"17-02-2014 05:00 PM";
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm a"];
NSDate *datetoday=[dateFormatter dateFromString:str];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss Z"];
NSString *strdate=[dateFormatter stringFromDate:datetoday];
NSLog(@"%@",strdate);
答案 1 :(得分:2)
我认为您的问题是日期格式字符串中的"HH"
。 "HH"
是24小时制,但您的输入时间为12小时。尝试使用"hh"
。
请参阅:http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns
顺便说一句,您的代码中有几个要创建新对象并立即丢弃的对象:
NSString *eventDttm = [[NSString alloc] init];
- 创建新的NSString对象并分配给eventDttm。
eventDttm = [NSString stringWithFormat:@"%@ %@",date,time];
- 创建另一个新的NSString对象,并将那个分配给eventDttm。现在不再引用在前一行创建的字符串,因此将在ARC中销毁,或在手动内存管理中放弃。
当您声明dateFromString
时会发生同样的事情。
答案 2 :(得分:1)
将时间格式字符串从HH更改为hh。 你24小时的时候用的HH。在你的例子中,你只有12小时的时间。
答案 3 :(得分:1)
用以下代码替换你的代码......我在xcode中测试过,它给出了你想要的结果 您将获得“prettyDate”字符串中的结果。
NSString *eventDttm = [[NSString alloc] init];
eventDttm = [NSString stringWithFormat:@"17-02-2014 05:00 PM"];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm a"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:eventDttm];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
NSString *prettyDate = [dateFormatter stringFromDate:dateFromString];
prettyDate = [prettyDate stringByAppendingString:@" +000"];
让我知道它的工作与否!!!
快乐编码...... !!!
答案 4 :(得分:0)
请使用此代码,
NSString *dateStr = @"17-02-2014 05:00 PM";
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"dd-MM-yyyy hh:mm a"];
NSDate *date = [dateFormatter1 dateFromString:dateStr];
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"dd-MM-yyyy hh:mm:ssZZ"];
dateStr = [dateFormatter2 stringFromDate:date];
NSLog(@"date : %@",dateStr);
使用此代码,您将获得字符串, 日期:17-02-2014 05:00:00 + 0530 感谢。