标签: nsdateformatter

为什么NSDateFormatter会为这4个时区返回nil日期?

尝试在iOS6中运行它(尚未测试iOS6之前):

NSDateFormatter *julianDayDateFormatter = nil;
julianDayDateFormatter = [[NSDateFormatter alloc] init];
[julianDayDateFormatter setDateFormat:@"g"];

for (NSString *timeZone in [NSTimeZone knownTimeZoneNames]) {
    julianDayDateFormatter.timeZone = [NSTimeZone timeZoneWithName: timeZone];
    NSDate *date = [julianDayDateFormatter dateFromString:[NSString stringWithFormat:@"%d", 2475213]];
    if (date == nil)
        NSLog(@"timeZone = %@", timeZone);
}
Run Code Online (Sandbox Code Playgroud)

并得到以下输出:

America/Bahia
America/Campo_Grande
America/Cuiaba
America/Sao_Paulo
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这四个时区的行为是这样的,NSDateFormatter设置为朱利安日数?所有其他时区使NSDateFormatter返回实际的NSDates.

objective-c nsdate nsdateformatter julian-date ios6

42
推荐指数
2
解决办法
2198
查看次数

如何将NSDate转换为相对格式为"今天","昨天","一周前","一个月前","一年前"?

我想将nsdate转换为相对格式"Today","Yesterday","a week ago","a month ago","a year ago","date as it is".

我已经为它写了以下方法..但有些如何只是打印,因为它是日期..你能告诉我应该是什么问题吗?

//以下是我的函数,它将日期转换为相对字符串

+(NSString *)getDateDiffrence:(NSDate *)strDate{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];

    df.timeStyle = NSDateFormatterMediumStyle;
    df.dateStyle = NSDateFormatterShortStyle;
    df.doesRelativeDateFormatting = YES;
    NSLog(@"STRING DATEEE : %@ REAL DATE TODAY %@",[df stringFromDate:strDate],[NSDate date]);
      return [df stringFromDate:strDate];

}
Run Code Online (Sandbox Code Playgroud)

我有以下格式的日期字符串 "2013-10-29T09:38:00"

当我试图给出NSDate对象时,它总是返回我的null日期.
所以我试图将该日期转换为yyyy-MM-dd HH:mm:ssZZZZ然后我将此日期传递给函数然后它只是打印整个日期..

如何解决这个问题呢?

//以下是我调用上述函数的代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *date = [formatter dateFromString:[threadDict objectForKey:@"lastMessageDate"]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ssZZZZ"];

NSString *date1 = [formatter stringFromDate:date];
NSDate *date_d = …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdate relative-date nsdateformatter ios

39
推荐指数
5
解决办法
3万
查看次数

NSDateFormatter,我做错了什么或这是一个错误?

我正在尝试以某种格式打印出日期:

NSDate *today = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSString *dateStr = [dateFormatter stringFromDate:today];
Run Code Online (Sandbox Code Playgroud)

如果将iPhone设置为24小时,这样可以正常工作,如果另一方面用户已将其设置为24小时时间,然后返回到上午/下午(它可以正常工作,直到您切换此设置)然后它会附加AM/PM尽管我没有要求它:

20080927030337 PM
Run Code Online (Sandbox Code Playgroud)

我做错了什么或这是固件2.1的错误?

编辑1:使描述更清晰

编辑2解决方法:事实证明这是一个错误,修复它我将AM和PM字符设置为"":

[dateFormatter setAMSymbol:@""];
[dateFormatter setPMSymbol:@""];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsdate nsdateformatter ios

38
推荐指数
4
解决办法
2万
查看次数

NSString到NSDate

我有一个包含当前日期的字符串,使用它:

NSString *date = [[NSDate date] description];
Run Code Online (Sandbox Code Playgroud)

在不同的点,我想从这个字符串中检索日期,我使用以下代码:

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault];
[dateFormatter setDateFormat:@"YYYY-MM-DD HH:MM:SS ±HHMM"];

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:<NSString containing date>];
Run Code Online (Sandbox Code Playgroud)

我正在dateFromStringnil为0x0.我究竟做错了什么?

cocoa nsdate nsstring nsdateformatter

38
推荐指数
2
解决办法
4万
查看次数

Objective-C,如何以UTC时区获取当前日期?

我在尝试:

NSDate *currentDateInLocal = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:SS.SSS'Z'"];
NSString *currentLocalDateAsStr = [dateFormatter stringFromDate:currentDateInLocal];

NSDateFormatter * dateFormatter2 = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter2 setTimeZone:timeZone];
[dateFormatter2 setDateFormat:@"yyyy-MM-dd'T'HH:mm:SS.SSS'Z'"];
NSDate *currentDateInUTC = [dateFormatter2 dateFromString:currentLocalDateAsStr];
Run Code Online (Sandbox Code Playgroud)

但它仍然不代表当前的UTC时间,我该如何实现呢?

谢谢

objective-c nsdate nsdateformatter ios

38
推荐指数
4
解决办法
8万
查看次数

Swift - iOS - 不同格式的日期和时间

我正在为一个用swift编写的应用程序工作,我想操纵日期和时间

let timestamp = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .ShortStyle, timeStyle: .ShortStyle)
Run Code Online (Sandbox Code Playgroud)

回报

2/12/15, 11:27 PM
Run Code Online (Sandbox Code Playgroud)

如果我想要一个不同格式的日期和时间,例如欧洲格式的日期,如dd/mm/yy和没有AM和PM的24小时格式的小时,我可以使用一些功能,或者我必须使用N字符串重新排序各种元素?

timestamp nsdateformatter ios swift

38
推荐指数
6
解决办法
13万
查看次数

NSDateFormatter显示错误的一年

即时通讯使用xcode 4.5(4G182)与iOS 6. NSDateFormatter在iOS 6中显示错误年份,如何解决?

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSString *str = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"%@ == %@",str,[[dateFormatter dateFromString:str] description]);
Run Code Online (Sandbox Code Playgroud)

打印出来" 2012 -09-14 == 2011 -09-13 16:00:00 +0000"

nsdateformatter ios6

37
推荐指数
1
解决办法
9358
查看次数

如何从NSDate变量获取工作日和/或月份名称?

好的.我们遇到的问题是我们的NSStrings填充了yyyyMMdd格式的日期,我们想要做的是获取当前的工作日和月份名称.函数dagOmvandlare将日期字符串转换为工作日和月份.然后在viewDidload上调用该函数,将所有按钮标题命名为从英语到瑞典语.

我们目前的解决方案看起来像这样:

-(NSString *)dagOmvandlare:(id) suprDatum{

   NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
   dateFormatter.dateFormat = @"yyyyMMdd";

   NSDate *date = [dateFormatter dateFromString:suprDatum];


   NSString * monthString = [date descriptionWithCalendarFormat:@"%B"timeZone:nil
                                                         locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];

   if ([monthString isEqualToString:@"January"]) {
       monthString = @"Januari";
   }
   else
       if ([monthString isEqualToString:@"February"]) {
           monthString = @"Februari";
       }
       else
           if ([monthString isEqualToString:@"May"]) {
               monthString = @"Maj";
           }
           else
               if ([monthString isEqualToString:@"June"]) {
                   monthString = @"Juni";
               }
               else
                   if ([monthString isEqualToString:@"July"]) {
                       monthString = @"Juli";
                   }
                   else
                       if ([monthString isEqualToString:@"August"]) {
                           monthString = …
Run Code Online (Sandbox Code Playgroud)

xcode nsdate nsdateformatter ios

35
推荐指数
4
解决办法
5万
查看次数

从UTC-5时区日期和时间iPhone应用程序获取当前iPhone设备时区的日期和时间?

在我的iPhone应用程序中,我很难将web服务响应时间转换为当前设备时间.的webservice time in UTC-5 timezone.该应用程序是全球使用的应用 所以我必须将响应时间转换为当前设备时区.这是简单的消息传递应用.

当我发送了一个message the time is "5:05 PM" (India Chennai timezone)但是什么时候从中webservice is "2012-07-16 07:33:01"检索时间.当我在应用程序中显示时间时,我应该将时间转换为设备的本地时间.我试过某种方式,但我还是无法解决.代码是:

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; 
[dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
[dateFormatter1 setLocale:[NSLocale currentLocale]];
//[dateFormatter1 setTimeZone:[NSTimeZone timeZoneWithName:@"IST"]];
[dateFormatters setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *date = [dateFormatter1 dateFromString:dateStr];
NSLog(@"date : %@",date);
Run Code Online (Sandbox Code Playgroud)

但输出日期和时间是2012-07-16 02:03:01 +0000我已经存储了这个日期/时间Coredata,当我从中检索CoreData并转换为NSString使用下面的代码时,

NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
[dateFormatters setDateFormat:@"dd-MMM-yyyy hh:mm"];
[dateFormatters setDateStyle:NSDateFormatterShortStyle];
[dateFormatters setTimeStyle:NSDateFormatterShortStyle];
[dateFormatters setDoesRelativeDateFormatting:YES];
[dateFormatters setTimeZone:[NSTimeZone systemTimeZone]]; …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdate nsdateformatter ios swift

33
推荐指数
3
解决办法
6万
查看次数

iPhone NSDateFormatter时区转换

我正在尝试创建一个格式化程序,将显示的日期格式转换为NSDate对象:

NSString *dateStr = @"2010-06-21T19:00:00-05:00";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate *date = [dateFormat dateFromString:dateStr];  
Run Code Online (Sandbox Code Playgroud)

问题是时区-05:00,使用上面的格式无法正确解析.有什么建议?

iphone nsdateformatter

32
推荐指数
2
解决办法
3万
查看次数