【问题标题】:Convert static time to NSDate returns older date将静态时间转换为 NSDate 返回较旧的日期
【发布时间】:2023-03-19 04:54:02
【问题描述】:
NSDate *date = [NSDate date];

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"hh:mm a"];
[df setTimeZone:[NSTimeZone systemTimeZone]];
[df setLocale:[NSLocale systemLocale]];
NSLog(@" >> %@ >>> %@",date,[df dateFromString:@"12:18 AM"])

日志是

>> 2014-04-10 07:00:48 +0000 >>> 2000-01-01 06:52:00 +0000

我希望第二个日期也与第一个日期相同。

喜欢

  2014-04-10 07:00:48 +0000 >>> 2014-04-10 06:52:00 +0000

【问题讨论】:

标签: ios iphone ipad nsdateformatter


【解决方案1】:

如果您想将时间字符串“12:18 AM”转换为当天的日期,那么您可以进行如下操作:

NSString *time = @"12:18 AM";

NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
[fmt setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

// Get year-month-day for today:
[fmt setDateFormat:@"yyyy-MM-dd "];
NSString *todayString = [fmt stringFromDate:[NSDate date]];

// Append the given time:
NSString *todaysTime = [todayString stringByAppendingString:time];

// Convert date+time string back to NSDate:
[fmt setDateFormat:@"yyyy-MM-dd h:mm a"];
NSDate *date = [fmt dateFromString:todaysTime];

【讨论】:

    【解决方案2】:
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];
    

    通过使用此格式化程序,您可以获得NSDate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-24
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多