-3

如何将以下字符串“美国东部标准时间 10 月 24 日,星期一 12:30 AM”转换为 NSDateFormat。

我试过这段代码

NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"MM/DD/YYYY hh:mm a"];
NSDate *datefor=[dateformat dateFromString:appDelegate.appoinmentString];
[dateformat setDateFormat:@"MM-dd-yyyy hh:mm a"];
NSString *dateStr=[dateformat stringFromDate:datefor];

NSDate *datetype=[dateformat dateFromString:dateStr];
4

3 回答 3

8

dateformat的 forOctober 24,Monday 12:30 AM EST不正确。dateformat在您的情况下正确的是MMMM dd,eeee HH:mm a z.


工作代码:

NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
[dateformat setDateFormat:@"MMMM dd,eeee HH:mm a z"];
NSDate *myDate = [dateformat dateFromString:@"October 24,Monday 12:30 AM EST"];

看看Date Format Specifiers

  1. eeee- 详细说明当地星期几。
  2. MMMM- 说明月份。
  3. dd- 没有前导零的月份。
  4. HH- 一天中的小时(24 小时格式)。
  5. mm- 小时的分钟数(带前导零)。
  6. z- 时区(短时间)。
于 2013-10-23T10:46:11.277 回答
1

尝试这个...

NSString *p=@"October 24,Monday 12:30 AM EST";
NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"MMM dd,EEEE hh:mm a vvv"];
NSDate *datefor=[dateformat dateFromString:p];
[dateformat setDateFormat:@"MM-dd-yyyy hh:mm a"];
NSString *dateStr=[dateformat stringFromDate:datefor];

NSDate *datetype=[dateformat dateFromString:dateStr];

如果您有任何问题,请告诉我。

于 2013-10-23T10:51:04.720 回答
0

尝试如下: -

NSString *dateStr=@"October 24,Monday 12:30 AM EST";
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];
[dateFormat setDateFormat:@"MMMM dd,eeee HH:mm a z"];

NSDate *changeDate=[dateFormat dateFromString:dateStr];
NSLog(@"changeDate=%@",changeDate);
NSString *str=[dateFormat stringFromDate:changeDate];

//getting your local time
NSTimeZone *tz=[NSTimeZone localTimeZone];
//setting yourlocal time
[dateFormat setTimeZone:tz];
NSDate *date = [dateFormat dateFromString:str];
//Setting your desired format
[dateFormat setDateFormat:@"dd-mm Z"];
NSString *newDate=[dateFormat stringFromDate:date];
NSLog(@"new date=%@",newDate);
于 2013-10-23T11:05:50.383 回答