如何设置时间戳,以便在保存时不会重复

时间:2013-08-17 06:16:02

标签: ios timestamp save

我想加上时间戳,以便在我制作应用程序时保存,我可以避免重复使用代码

NSArray *directoryNames = [NSArray arrayWithObjects:@"hats",@"bottoms",@"right",@"left",nil];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder

    for (int i = 0; i < [directoryNames count] ; i++) {
        NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[directoryNames objectAtIndex:i]];
        if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder

        NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"hats"]; // "right" is at index 2, per comments & code
        NSString *filePath = [folderPath stringByAppendingPathComponent:@"IMAGE_NAME_HERE.PNG"]; // you maybe want to incorporate a timestamp into the name to avoid duplicates
        NSData *imageData = UIImagePNGRepresentation(captureImage.image);
        [imageData writeToFile:filePath atomically:YES];
    }
} 

我如何设置时间戳或其他东西?我只想停止复制,因此需要时间戳

3 个答案:

答案 0 :(得分:4)

您可以直接使用时间戳,并且没有机会将其复制。检查下面的代码

time_t unixTime = (time_t) [[NSDate date] timeIntervalSince1970];
NSString *timestamp=[NSString stringWithFormat:@"%ld",unixTime];

答案 1 :(得分:0)

您没有说清楚,但我怀疑您想要的是在文件名中添加 date

为此,您需要使用“NSDateFormatter”将NSDate对象(例如今天的日期?)转换为字符串。 Here is a related question that shows how to create that string

如果您不想将日期作为文件或文件夹名称的一部分,您还可以检查该文件是否已存在于文件夹路径中。如果确实存在,请不要写png文件。

答案 2 :(得分:0)

您可以使用此NSDate选择器:

- (NSTimeInterval)timeIntervalSince1970

它返回自格林威治标准时间1970年1月1日00:00:00以来的秒数。

示例:

time_t getTime = (time_t) [[NSDate date] timeIntervalSince1970];

您可以存储的内容,以便您可以参考文件的保存时间。