0

我在这个格式中的字符串中有日期"Tue, 23 Oct 2012 01:05:00 +0000"。现在我想将日期格式转换为“ TUE OCT 23 2012 1:05AM ”。做这个的最好方式是什么?

4

3 回答 3

12

使用此方法。将您的字符串传递给它并根据需要设置日期格式。您将得到您想要的日期作为回报。

- (NSDate *) getDateFromString:(NSString *) inputDate
{

    NSDateFormatter *dateForm = [[NSDateFormatter alloc] init];

    [dateForm setDateFormat:@"yyyy-MM-dd"];

    NSDate *dateSelected = [dateForm dateFromString:inputDate];

    [dateForm release];

    return dateSelected;
}

希望对你有效。

==================================================== ==============

日期格式选项如下:

现在你想要 NSDateFormatter 可以使用的所有字符串格式。这里是

一个:上午/下午

A: 0~86399999 (毫秒)

c/cc: 1~7 (星期几)

ccc:周日/周一/周二/周三/周四/周五/周六

cccc:周日/周一/周二/周三/周四/周五/周六

d: 1~31 (0 填充的日期)

D:1~366(0 填充年中的一天)

e:1~7(0 填充星期几)

E~EEE:周日/周一/周二/周三/周四/周五/周六

EEEE:周日/周一/周二/周三/周四/周五/周六

F:1~5(0 填充月中的一周,一周的第一天 = 星期一)

g:儒略日数(自公元前 4713 年 1 月 1 日以来的天数)

G~GGG:BC/AD(时代代号缩写)

GGGG:在基督之前/安诺·多米尼

h: 1~12 (0 填充小时 (12hr))

H: 0~23 (0 填充小时 (24hr))

k: 1~24 (0 填充小时 (24hr)

K: 0~11 (0 填充小时 (12hr))

L/LL: 1~12 (0 填充月份)

LLL:一月/二月/三月/四月/五月/六月/七月/八月/九月/十月/十一月/十二月

LLLL:一月/二月/三月/四月/五月/六月/七月/八月/九月/十月/十一月/十二月

m: 0~59 (0 填充分钟)

月/月:1~12(0 填充月)

MMM:一月/二月/三月/四月/五月/六月/七月/八月/九月/十月/十一月/十二月

MMMM:一月/二月/三月/四月/五月/六月/七月/八月/九月/十月/十一月/十二月

q/qq:1~4(0 填充季度)

QQ:Q1/Q2/Q3/Q4

qqqq:一季度/二季度/三季度/四季度

Q/QQ:1~4(0 填充季度)

QQQ:Q1/Q2/Q3/Q4

QQQQ:一季度/二季度/三季度/四季度

s: 0~59 (0 填充秒)

S:(四舍五入的亚秒)

u:(0 填充年份)

v~vvv:(通用 GMT 时区缩写)

vvvv:(通用 GMT 时区名称)

w:1~53(0 填充一周,一周的第一天 = 星期日,NB:一年的第一周从去年的最后一个星期日开始)

W:1~5(0 填充月份的星期,星期的第一天 = 星期日)

y/yyyy:(全年)

yy/yyy:(2 位数年份)

Y/YYYY:(全年,从一年中第一周的星期日开始)

YY/YYY:(2 位数年份,从一年中第一周的星期日开始)

z~zzz:(特定 GMT 时区缩写)

zzzz:(特定 GMT 时区名称)

Z:+0000(RFC 822 时区)

===========================================

随意设置格式..

于 2012-10-23T06:30:02.703 回答
3
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr]; 

但首先

  1. 创建一个NSDateFormatter将日期字符串转换为NSDate 对象。
  2. 创建第二个NSDateFormatter(或更改第一个的格式字符串)以将其转换NSDate为字符串。

这会有点帮助吗???

编辑

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-ddHH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2011-04-0600:28:27"];
于 2012-10-23T06:16:51.147 回答
2

使用此波纹管方法传递您的日期...

       -(NSString *)StringFromDate:(NSString *)DateLocal{
        DateLocal = [self trimString:DateLocal];
        NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];   
        [dateFormatter setDateFormat:@"EEE, dd LLL yyyy hh:mm:ss Z"];

        NSDate *date = [dateFormatter dateFromString: DateLocal];
        NSString *tt = [dateFormatter stringFromDate:date];
        NSDate *dateReturn = [dateFormatter dateFromString:tt];


        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        [dateFormat setDateFormat:@"EEE LLL dd yyyy hh:mm a"];
        NSString *dateString = [dateFormat stringFromDate:dateReturn];  
        NSLog(@"Date is HERE  =====>> %@",dateString);
        [dateFormat release];
        return dateString;
    }
于 2012-10-23T06:30:39.930 回答