转换日期+时间格式

时间:2011-05-07 17:08:04

标签: timezone nsdate nsdateformatter nscalendar

我需要使用NSDateFormatter将以下格式转换为新格式。

'星期五,2011年3月25日10:16:00 -0700'。

我尝试使用“aaa,dd bbb YYYY HH:MM:SS ZHHMM”作为格式,但它不起作用;它给了我过去的约会方式。

我还需要在创建新日期时将其转换为东部时区。

我使用的代码如下:

NSDateFormatter *newDateFormatter = [[NSDateFormatter alloc] init]; 
[newDateFormatter setDateFormat:@"dd MMM YYYY HH:mm:SS"];

1 个答案:

答案 0 :(得分:4)

让我们将这个字符串分解为各个部分:

2011年3月25日星期五10:16:00 -0700成为:

  • 周五:缩短的一周
  • 25:本月潜在的零填充日
  • Mar:缩写月份
  • 2011:年
  • 10:潜在的零填充小时(24小时格式,因为没有AM / PM)
  • 16:潜在的零填充分钟
  • 00:零填充第二
  • -0700:时区偏移

现在让我们看一下date format patterns that NSDateFormatter supports

  • 缩写为星期几:EEE
  • 每月零填充日期:dd
  • 缩写为月份:MMM
  • 年:y
  • 零填充小时(24小时):HH
  • 零填充分钟:mm
  • 零填充秒:ss
  • 时区偏移:ZZZ

因此,您的格式字符串应为:@"EEE, dd MMM y HH:mm:ss ZZZ"