美文网首页
iOS 日期和时间问题.md

iOS 日期和时间问题.md

作者: 儒徒 | 来源:发表于2021-03-31 16:20 被阅读0次

一、涉及的类: NSDate、NSDateFormatter、NSCalendar

二、获取今日的格式化日期

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd"];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *todayDate = [dateFormatter stringFromDate:[NSDate date]];
return todayDate;

yyyyMMdd:日期格式化

三、获取今日是周几

NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone localTimeZone];
NSDateComponents *comp = [calendar components:NSCalendarUnitWeekday
                                     fromDate:[NSDate date]];
NSInteger weekday =  [comp weekday];
if (weekday == 1) {//1: 星期天
    return @"7";
}else{
    /// 2:星期一, 3:星期二,... 7:星期六
    return weekday-1;
}

四、世界时间转换为本地时间

- (NSDate *)convertToLocalDateByWorldDate:(NSDate *)worldDate
{
    //当地时区
    NSTimeZone* localTimeZone = [NSTimeZone localTimeZone];
    //世界时间与当地时区的时间偏差值
    NSInteger offset = [localTimeZone secondsFromGMTForDate:worldDate];
    //世界时间+偏差值 计算得出
    NSDate *localDate = [worldDate dateByAddingTimeInterval:offset];
    return localDate;
}

五、将时间(毫秒)转化为“时分秒”

@property (nonatomic, assign) int currentHour;
@property (nonatomic, assign) int currentMinute;
@property (nonatomic, assign) int currentSecond;
@property (nonatomic, assign) int currentMillSecond;

///将时间(毫秒为单位)转化为“时分秒”形式. 
///比如: 后端返回了一个用户需倒计时时间完成的任务, 这个倒计时时间是多少呢
self.currentHour = totalTime/(60*60*1000);
int restTime = totalTime%(60*60*1000);
if (restTime>0) {
    self.currentMinute = restTime/(60*1000);
    restTime = restTime%(60*1000);
}else{
    self.currentMinute = 0;
}

if (restTime>0) {
    self.currentSecond = restTime/1000;
    restTime = restTime%1000;
}else{
    self.currentSecond = 0;
}

if (restTime>0) {
    self.currentMillSecond = restTime/100;
}else{
    self.currentMillSecond = 0;
}

六、日期格式化

yyyy:MM:dd HH:mm:ss
MM和mm的区别:MM表示月份,mm表示分钟
dd和DD的区别:dd表示当月的日期,DD表示从该年的1月1号到现在的天数
HH和hh的区别: HH表示24小时制格式, hh表示12小时制格式化

yyyy和YYYY的区别: YYYY是以周计算, yyyy:正常计算

如果一月1日是星期一,星期二,星期三,星期四,它是新的一年的第一周。
如果一月1日是星期五,星期六或星期日,它是前一年的52周或53周。

比如: 2019-12-29: 如果是yyyy格式化的日期是2019-12-29, 如果是YYYY格式化的日期是2020-12-29. image.png

相关文章

  • iOS 日期和时间问题.md

    一、涉及的类: NSDate、NSDateFormatter、NSCalendar 二、获取今日的格式化日期 三、...

  • 交互设计面试问题总结

    1. MD和iOS规范的区别? MD注重视觉效果的规范统一;iOS注重功能表意清晰,操作明确,注重应用与系统间功能...

  • 日期与时间问题

    1.日期问题:根据月份和日期计算天数,这里的num表示细菌繁殖的初始数目。 2.日历问题:输出年月日和星期几,星期...

  • python中的time和datetime模块

    写代码时经常需要处理日期时间问题,Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 d...

  • IOS和Android下汇总

    项目问题 IOS下 时间问题: '2019-01-04' 在ios下不能被解析, '2019/01/04'才行 ...

  • iOS 数据加密

    iOS 常用加密方式算法包括MD5加密、AES加密、BASE64加密 MD5加密 MD5:全称是Message D...

  • Objective-C AES 加解密

    iOS AES加解密 hexToByte parseByteToHexString md5 AESEncrypt ...

  • iOS Md5 加密

    iOS Md5 加密: Implicit conversion loses integer precision: ...

  • iOS 加密解密

    iOS各类加密算法详解 iOS & Java md5 加密报错@constant kCCAlignmentEr...

  • 常用第三方

    第三方 trip-to-iOS/Top-100.md at master · Aufree/trip-to-iOS...

网友评论

      本文标题:iOS 日期和时间问题.md

      本文链接:https://www.haomeiwen.com/subject/fuqahltx.html