【问题标题】:Parsing NSString解析 NSString
【发布时间】:2013-04-10 00:06:36
【问题描述】:

我目前正在创建一个简单的文本文件,将其读入我的应用程序,将字符串“0700 1300”转换为 NSDate 格式以读入我的本地日历。

我对 Objective-c 很陌生,但我试图将 0700 读入事件的开始时间,并将 1300 读入事件的结束时间。我就是拿不到1300。主要是我想存储第一个WORD“0700”和第二个WORD“1300”。

编辑: 如果可能,请包含将字符串“0700 1400”转换为字符串的代码,稍后将是

的时间间隔

EKEvent *myEvent;

这是我用来将数据存储在我从网上下载的文本文件中的代码。

NSData *data = [[NSData alloc] initWithData:downloadFile.receivedData];
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
[self.myDataArray addObject:dataString];

myDataArray 是我之前在当前视图控制器的viewDidLoad 中启动的可变数组。

这是我正在读入的文本文件的一个小 sn-p。

Sunday
0 1200
Sunday
2100 2400
Monday
0 600

【问题讨论】:

  • 首先,您能发布您尝试过的内容以及失败的原因(错误、无效输出等)吗?
  • 刚刚编辑了我的问题
  • 感谢编辑正是我的意思哈哈。你能在哪里找到解决方案?或者更确切地说,知道我想做什么?

标签: parsing time nsstring nsdate


【解决方案1】:

我能够解析我的文本文件,但现在出现了将包含开始日期和结束日期的字符串转换为 NSDATE 的问题。

我还没有遍历整个文件,只是特定文件中的一行,一旦我至少可以格式化一行,我将遍历整个文件。

我目前已通过追加和插入将 0 和 1200 转换为 2013-06-08 00:00:00 +0000 and 2013-06-08 12:00:00 +0000

这是我使用的代码。

NSData *data = [[NSData alloc] initWithData:downloadFile.receivedData];
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSArray *components = [dataString componentsSeparatedByString:@"\n"];
NSString *anotherString = [NSString stringWithFormat:components[1]];
NSArray *times = [anotherString componentsSeparatedByString:@" "];


NSMutableString *startDate = [[NSMutableString alloc] initWithString:times[0]];
NSMutableString *endDate = [[NSMutableString alloc] initWithString:times[1]];

for (int i = startDate.length; i < 4; i++)
    [startDate appendString:@"0"];
[startDate appendString:@":00 +0000"];

for (int i = endDate.length; i < 4; i++)
    [endDate appendString:@"0"];
[endDate appendString:@":00 +0000"];


[startDate insertString:@":" atIndex:2];
[endDate insertString:@":" atIndex:2];

[startDate insertString:@"2013-06-08 " atIndex:0];
[endDate insertString:@"2013-06-08 " atIndex:0];

我意识到在添加事件时,我不需要知道结束时间,只需要知道时间间隔。因此,我计划将开始时间与结束时间进行比较,然后以这种方式找到时间间隔。

我知道我给我的字符串的 DATE 是一个固定的日期,但这不是目前的问题,我稍后会解决这个问题。但现在我想将我创建的 NSString *startDate 转换并将日期/时间字符串存储到 NSDate *startDate 中,以便我可以将其用作 EKEvent 的开始日期。

谢谢你们。

【讨论】:

    猜你喜欢
    • 2012-02-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2014-08-05
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多