ios昨天中午12點的時間戳

日常開發中經常會遇到查詢昨天中午12點的時間戳的情況,比如我需要查睡眠時間對應的數據,那就需要昨天中午12點到今天中午12點的時間戳,然後到coredata中去查詢。看了很多網上的帖子,寫的都不會很清楚,有的很麻煩,這裏推薦一種簡單的方法

        NSString *today =  [self getCurrentTime];
        NSString *todaynoon =  [NSString stringWithFormat:@"%@ 12:00:00",today];
        NSInteger todayStamp =  [self timeSwitchTimestamp:todaynoon andFormatter:@"yyyy-MM-dd HH:mm:ss"];
//        NSLog(@"%ld",(long)todayStamp);
        NSInteger yesterdayStamp = todayStamp - (24*60*60);

- (NSString *)getCurrentTime {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    NSString *dateTime = [formatter stringFromDate:[NSDate date]];
    return dateTime;
}
-(NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format{
    
    
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:format]; //(@"YYYY-MM-dd hh:mm:ss") ----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
    
    
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
    
    [formatter setTimeZone:timeZone];
    
    
    
    NSDate* date = [formatter dateFromString:formatTime]; //------------將字符串按formatter轉成nsdate
    
    //時間轉時間戳的方法:
    
    NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue];
    
    
    
    NSLog(@"將某個時間轉化成 時間戳&&&&&&&timeSp:%ld",(long)timeSp); //時間戳的值
    
    
    
    return timeSp;
    
}

很簡單 關鍵點就在於直接用時間戳減去秒數~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章