草庐IT

Dateformatter

全部标签

objective-c - NSDateFormatter:如何将带有 'GMT' 的日期字符串转换为本地 NSDate?

我需要将从服务器检索到的日期字符串转换为本地NSDate,该字符串如下所示:"Fri,30Nov201200:35:18GMT"但现在是11月30日星期五上午11:36,那么我该如何将字符串转换为有意义的本地NSDate?我发现:iPhone:NSDateconvertGMTtolocaltime但看起来恰恰相反。 最佳答案 请注意,NSDate在内部始终以格林威治标准时间存储日期。然后,您使用日期格式化程序在您本地的时区创建一个字符串。在这种情况下,您从一个字符串开始,因此需要首先使用日期格式化程序创建日期,然后再次使用它在您本地

iOS15.4 NSDateformatter 12小时制日期格式问题及解决

最近在群里看到有人遇到了更新到iOS15.4版本并且设置时间为12小时制后,使用dateformatter解析出的时间格式出错的问题。代码如下:NSDate*date=[NSDatedate];NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];dateFormatter.dateFormat=@"yyyy-MM-ddHH:mm:ss";NSString*dateStr=[dateFormatterstringFromDate:date];NSLog(@"%@",dateStr);输出结果:可以看到虽然设置了dateFormat

iphone - NSDate 独立于时区?

我有一个应用程序可以显示某些渡轮旅行的时间表。如果我前往不同的时区-比如晚4小时,早上10点的渡轮旅行现在显示为早上6点?我知道这与根据时区处理日期的方式有关,但我不知道如何改变这种行为。目前这是我获取日期并将其显示在UILabel上的方式:NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];[dateFormattersetDateFormat:@"HH:mm"];[self.departureTimesetText:[dateFormatterstringFromDate:[self.routeobjectForKe

ios - 日期和月份名称的 NSDateFormatter

我正在尝试以2015年3月9日星期一的格式获取日期。但以下代码未返回所需的日期格式。我想我使用了错误的格式化程序。这是代码:NSString*dateString=@"09-03-2015";NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];[dateFormattersetDateFormat:@"ddMMMMyyyy"];NSDate*date=[[NSDatealloc]init];date=[dateFormatterdateFromString:dateString];NSLog(@"%@",[dateFor

ios - 比较ios中的两个时间值?

这个问题在这里已经有了答案:ComparingtimeanddateinobjectiveC(2个答案)关闭8年前。在我的应用程序中,我想检查当前时间是在变量中保存的时间之前还是之后。比如我的时间1是time1=@"08:15:12";而我的时间2是time2=@"18:12:8";所以我想比较time1和time2。目前这些变量是NSString格式。下面是获取时间的代码,不知道怎么比较。代码:NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];dateFormatter.dateFormat=@"HH:MM:SS";

ios - 我用 "EEE MMM dd HH:mm:ss z yyyy"得到了 dateFormatter 的异常

使用以下代码时出现异常:varexpDate:NSDate=NSDate()letdateFormatter=NSDateFormatter()dateFormatter.dateFormat="EEEMMMddHH:mm:sszyyyy"expDate=dateFormatter.dateFromString("SunApr1910:33:18GST2009")我试过用e和E代替EEE,用Z和ZZZ代替z但没用有谁知道问题出在哪里? 最佳答案 “GST”似乎不是受支持的缩写。参见https://gist.github.com/no

ios - Swift NSDate 格式化程序问题

我在某个日期的SwiftNSDateFormatter中遇到了一个奇怪的问题,这是我的代码:letstringDate="25/03/2015"letdateFormatter=NSDateFormatter()dateFormatter.dateFormat="dd/MM/yyyy"letdate=dateFormatter.dateFromString(stringDate)此代码运行良好,我能够从字符串中获取日期。但是,如果我将日期更改为“25/03/2016”或“31/03/2017”,我总是得到nil。这很奇怪,有没有人也遇到过这个问题?任何人都知道这个奇怪错误背后的原因是什

ios - swift nsdate 给出错误的输出

这个问题在这里已经有了答案:Gettingdatefrom[NSDatedate]offbyafewhours(3个答案)关闭6年前。一个简单的代码,用于将字符串日期转换为NSDate。但不知道为什么它会返回实际日期-1varstart_date:NSDate?varend_date:NSDate?letdateformatter=NSDateFormatter()dateformatter.dateFormat="yyyy-MM-dd"start_date=dateformatter.dateFromString("2016-09-01")!end_date=dateformatte

swift - 字符串日期到日期返回错误的时间

我有以下dateFormatter:vardate=Date()vardateFormatter=DateFormatter()dateFormatter.dateFormat="yyyy-MM-ddHH:mm:ss"lettimeZone=NSTimeZone(name:"UTC+01:00")dateFormatter.timeZone=timeZoneasTimeZone!letsweDate=dateFormatter.string(from:date)当我打印出来时,我得到了这些值:1:print(date)//2016-11-0110:16:19+00002:print("

ios - 使用 .long 或 .full 的日期格式不会导致小时/分钟/天/秒

我想以字符串形式获取当前日期,显示粒度精确到小时/分钟/秒,但是以下代码将仅显示“2017年1月20日,星期五”。我试过使用none、.medium、.long、.full的dateStyle。它们只显示最近一天的粒度,我怎样才能得到比这更细的粒度?letdateFormatter=DateFormatter()dateFormatter.dateStyle=.fullletnow=Date()letdateString=dateFormatter.string(from:now) 最佳答案 您还必须设置一个timeStyle。示例