ios - 从日期字符串开始的 24 小时时间

标签 ios objective-c nsdate nsdateformatter

我正在尝试从以下字符串中以 24 小时格式获取时间和时间:

2015 年 7 月 2 日下午 2:30:00

这是我试过的:

-(NSString*)returnDate:(NSString*)dateString
{

    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
    [dateFormatter1 setDateFormat:@"MM/dd/yyyy hh:mm:ss aaa"];
    NSDate *date = [dateFormatter1 dateFromString:dateString];

   dateString = [date descriptionWithLocale:[NSLocale systemLocale]];



    NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
    NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];

    NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:date];
    NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:date];
    NSTimeInterval gmtInterval = currentGMTOffset - gmtOffset;

    NSDate *destinationDate = [[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:date];

    NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
    [dateFormatters setDateFormat:@"HH:mm a"];
    [dateFormatters setDateStyle:NSDateFormatterShortStyle];
    [dateFormatters setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatters setDoesRelativeDateFormatting:YES];
    [dateFormatters setTimeZone:[NSTimeZone systemTimeZone]];
    dateString = [dateFormatters stringFromDate: destinationDate];

    return dateString;
}

输出:4:30

这是返回正确的时间,但采用 12 小时格式。我想要 24 小时格式的时间。

期望的输出:16:30

最佳答案

问题中有很多代码,试试这个:

NSString *dateString = @"7/2/2015 4:30:00 PM";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];

[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss aaa"];
NSDate *date = [dateFormatter dateFromString:dateString];

[dateFormatter setDateFormat:@"HH:mm"];
dateString = [dateFormatter stringFromDate: date];

NSLog(@"dateString: %@", dateString);

输出:

dateString: 16:30

关于ios - 从日期字符串开始的 24 小时时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231181/

相关文章:

ios - super 初始化返回 nil

ios - NSDate 问题,日期应该是前一天

ios - 来自 NSDateComponents 的有序工作日索引

ios - 在 UIToolbar 中更改 UIBarButtonItem 上的 tintColor 会导致按钮消失并从左侧开始动画

ios - UICollectionViewCell 不适合设备屏幕

ios - 尝试从 jenkins 运行 UI 自动化脚本时出错

ios - 更新 TableView 导致滞后和警告

ios - 关闭通知中心时更新标签

objective-c - 识别文件中的更改

arrays - 检查哪个日期最接近今天