如何在 IOS 中将 NSString 转换为 NSDate?

How to convert NSString to NSDate in IOS?

我正在构建一个需要将 NSString 转换为 NSDate 的应用程序。我用谷歌搜索并发现了很多 link 下面提到的 SOF -

  1. 再回来

  2. Convert NSString to NSDate

  3. Converting can NSString to NSDate format in objective C

我已经使用了那里给出的答案,但我仍然面临的问题是在下面逐步解释。

  1. 我取了 NSString *StringDate = @"01:00:00"; // 我已经在 NSString 变量中声明了时间。

  2. 我使用了上面提到的转换方法link并将转换后的值存储到NSDate变量中。

  3. 当我是NSLog的时候NSDate变量。我的 logcat 中显示“19:30:00”。虽然预期的结果应该是“01:00:00”。

这是我正在使用的代码之一

NSString *dateString = @"01:00:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"hh:mm:ss"];
NSDate *dateFromString = [[NSDate alloc] init];
// voila!
dateFromString = [dateFormatter dateFromString:dateString];

这可能是正确的日期,但打印在不同的时区。我在这里发布了更长的解释:

Unexpected value from NSDate

顺便说一句:在

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];

[[NSDate alloc] init] 完全没有意义,因为您在下一行分配了一个 NSDate 的实例。

 -(NSString *)geTimeFromString:(NSString *)string
    {
        NSString * dateString = [NSString stringWithFormat: @"%@",string];
        NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"hh:mm:ss"];
        NSDate* myDate = [dateFormatter dateFromString:dateString];
        [dateFormatter setDateFormat:@"hh:mm a"];
        [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
        NSString *stringFromTime = [dateFormatter stringFromDate:myDate];
        return stringFromTime;
    }

试试这个

尝试使用此方法将 NSString 转换为 NSDate :-

- (NSDate*) convertStringToDate
{
    NSString* dateStr = @"20/05/2015";
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"dd/MM/yyyy"];
    NSDate *date = [dateFormat dateFromString:dateStr];
    return date;
}