【问题标题】:How to Fetch date and time from a formatted string in iOS如何从 iOS 中的格式化字符串中获取日期和时间
【发布时间】:2015-02-21 07:46:03
【问题描述】:

我有一个 NSString "dateString",它包含给定格式的日期和时间。

"MM/dd/yyyy HH:mm:ss a"

我想使用 NSDateFormatter 从 dateString 中获取数据,然后尝试在字符串 "strDate" 中显示。我能够获取数据,但唯一的问题是我没有得到 "hour" 地方的正确值。

例如:

dateString   = 1/23/2015 7:06:37 AM
strDate   = 01/23/2015 00:06:37 am

如何解决此问题。提前致谢。这是我的代码:

-(NSString *)getDateQuestion:(NSString *)dateString
{
NSLog(@"dateString   = %@",dateString);

//NSString to NSDate
NSDate          *datefromString  = [[NSDate alloc] init];
NSDateFormatter *dateFormatter   = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+5:30"]];
[dateFormatter setTimeZone: [NSTimeZone systemTimeZone]];

[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

datefromString                   = [dateFormatter dateFromString:dateString];
NSLog(@"dateString1   = %@",datefromString);

//NSDate convert to NSString
 [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+5:30"]];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSString       *strDate          = [dateFormatter stringFromDate:datefromString];
NSLog(@"strDate   = %@",strDate);

return strDate;
}

【问题讨论】:

  • 打印日期时,是否设置了时区? NSDate 没有时区信息。
  • 是的。我正在使用时区“GMT”。你能建议印度的时区吗?因为我在印度使用 +5:30。
  • 能否请您发布用于将字符串转换为日期以及将日期转换为字符串的代码?
  • 请帮帮我....我做错了吗?
  • 你必须设置一个时区[NSTimeZone timeZoneWithName:@"GMT+5:30"]systemTimeZone

标签: ios objective-c iphone date xcode6


【解决方案1】:

只需将正确的日期时间字符串传递给函数,不要一次又一次地设置时区不必要的......我希望它可以帮助你......

NSDate *dat = [NSDate date];
NSDateFormatter *dateFormatter   = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC+05:30"]];

[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];

NSString * dateString =[dateFormatter stringFromDate:dat];
NSLog(@"dateString   = %@",dateString);
NSLog(@"dateString1   = %@",dateString);

//NSDate convert to NSString
[dateFormatter setDateFormat:@"HH:mm:ss a"];

NSString       *strDate          = [dateFormatter stringFromDate:dat];
NSLog(@"strDate   = %@",strDate);

HH 代表 24 小时。

hh satnds 12 小时。

【讨论】:

    【解决方案2】:
    [dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
    

    替换为"MM/dd/yyyy hh:mm:ss a"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多