0

我目前正在创建一个简单的文本文件,将其读入我的应用程序,将字符串“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当前视图控制器中启动的可变数组。

这是我正在读入的文本文件的一小段。

Sunday
0 1200
Sunday
2100 2400
Monday
0 600
4

1 回答 1

0

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

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

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

这是我使用的代码。

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];

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

I understand the DATE i give my string is of a constant date but that isn't the issue at the moment, I'll fix that later. But for now I would like to convert the NSString *startDate I created and stored the date/time string in to an NSDate *startDate so that I can use it as the start dat of an EKEvent.

Thank you guys.

于 2013-04-10T04:18:21.323 回答