【问题标题】:parsing a particular time format解析特定的时间格式
【发布时间】:2011-09-12 01:05:48
【问题描述】:

我从 .NET Web 服务获取时间/持续时间,格式如下:PT12H30M

如何处理?

【问题讨论】:

    标签: iphone objective-c ios4 nsdate


    【解决方案1】:

    当您定义用于解析日期的格式字符串时,您使用UTS #35 Date Format Patterns 来定义传入数据的外观。 PT 看起来像一个合法的时区缩写。您将需要根据分钟和小时是否为零填充来处理此问题。

    NSString *dateString = @"PT12H30M";
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"ZZhh'H'mm'M'"];
    NSDate date = [dateFormatter stringFromDate:dateString];
    

    【讨论】:

    • 啊,我明白了,我不确定是否可以将其转换为 NSDate 对象。谢谢!
    • NSString *dateString = @"PT12H30M"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"ZZhh'H'mm'M'"]; NSDate *date = [dateFormatter dateFromString:dateString]; NSLog(@"%@", 日期); [日期格式化程序发布];似乎打印出null。有什么想法吗?
    • 不知道是不是识别不出来的PT。尝试将 ZZ 替换为 'PT' (注意它像 'H' 和 'M' 一样被引用。
    • 是的,你是对的。此外,似乎我的时间有所不同,但这可能是由于时区? NSString *dateString = @"PT12H30M"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"'PT'hh'H'mm'M'"]; NSDate *date = [dateFormatter dateFromString:dateString]; NSLog(@"%@", 日期); [日期格式化程序发布];返回 1970-01-01 08:30:00 +0000
    • 哦,我认为 PT 应该使用 v 而不是 Z
    【解决方案2】:

    看看NSDateFormatter,它可以使用particular syntax解析用户指定格式的日期。解析结果是一个标准的 NSDate。

    【讨论】:

    • 不确定是否可以将其转换为 NSDate。很酷,谢谢!
    【解决方案3】:

    创建一个 NSDateFormatter 实例,配置一个描述时间格式的格式字符串,然后使用-dateFromString: 方法将您从 Web 服务获取的时间转换为 NSDate 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      相关资源
      最近更新 更多