objective-c - 在 Objective-C 中如何以毫秒获取 NSDate?dateFromString:方法忽略毫秒
问题描述
我使用了以下代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
NSString *str = [dateFormatter stringFromDate:[NSDate date]];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
NSDate *dateToday = [dateFormatter dateFromString:str];
这里 str 的值对于 .milliseconds 是正确的,但是当我尝试在 NSDate 中使用相同的 datFormatter 转换相同的字符串时,它会返回没有毫秒的 NSdate。
解决方案
使用这些功能并尝试记录日期以获得准确的结果:-
-(NSString *)stringFromDate:(NSDate *)date{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
NSString *str = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"Date : %@",str);
return str;
}
-(NSDate *)dateFromString:(NSString *)dateString{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
NSDate *date=[dateFormatter dateFromString:dateString];
NSLog(@"Date : %@",[dateFormatter stringFromDate:date]);
return date;
}
推荐阅读
- javascript - 我的创建角色命令仅创建一个具有“新角色”名称的角色
- c# - C# 在 foreach 循环中调用函数
- java - 如何使用 Jooq 获取多个级别的一对多嵌套
- r - 直方图 ggplot2
- go - Go循环轮询案例分支中的并发未命中
- ios - iPadOS、SwiftUI、侧边栏(3 列):在 NavigationView 中缺少带有 3 个视图的侧边栏按钮,但只能使用 2 个视图?
- dynamics-crm - 使用 ADF v2 将数据加载到具有多列备用键的 Dyanmic CRM 表中的问题
- javascript - 如何使用 npm 文件存储包?
- laravel - Laravel:使用和 whereHas 过滤第二个关系 hasOne
- javascript - Onclick 全屏打开视频