簡體   English   中英

如何在iOS中獲取當年的開始日期

[英]How to get start date of current year in iOS

我不知道如何在這種情況下使用NSDateNSCalendar
幫我解決這個問題。

這可以比其他答案更清晰:

NSDate *startOfYear;

[[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitYear startDate:&startOfYear interval:0 forDate:[NSDate date]];

startOfYear現在持有當年1月1日的午夜。

NSDateComponents *components = [calendar components:units fromDate:[NSDate date]];
[components setDay:1];
self.currentDate = [calendar dateFromComponents:components];
int m = components.month;
int y = components.year;
int d = components.day;


NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy MM dd"];
NSDate *firstDateOfMonth = [df dateFromString:[NSString stringWithFormat:@"%@ %@ 01",y,m]];
NSDate *firstDateOfYear = [df dateFromString:[NSString stringWithFormat:@"%@ 01 01",y]];
-(NSDate *)getFirstDateOfCurrentYear
 {
  //Get current year
  NSDate *currentYear=[[NSDate alloc]init];
  currentYear=[NSDate date];
  NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
  [formatter1 setDateFormat:@"yyyy"];
  NSString *currentYearString = [formatter1 stringFromDate:currentYear];

  //Get first date of current year
  NSString *firstDateString=[NSString stringWithFormat:@"10 01-01-%@",currentYearString];
  NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
  [formatter2 setDateFormat:@"hh dd-MM-yyyy"];
  NSDate *firstDate = [[NSDate alloc]init];
  firstDate = [formatter2 dateFromString:firstDateString];

  return firstDate;
 }
NSDate *now = [NSDate date];
NSDateComponents *components= [[NSCalendar currentCalendar] components:NSCalendarUnitYear fromDate:now];
components.month = 1;
components.day = 1;
NSDate *firstDayOfYear = [[NSCalendar currentCalendar] dateFromComponents:components];
 - (NSDate *)firstDateOfCurrentYear
 {

     NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
     [fmt setDateFormat:@"YYYY-01-01 00:00:00 0000"];
     NSString *dateStr = [fmt stringFromDate:[NSDate date]];
     [fmt setDateFormat: @"YYYY-MM-DD HH:mm:ss zzzz"];
     NSDate *firstDate = [fmt dateFromString:dateStr];
     return firstDate;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM