标签: nsdateformatter

NSDateFormatter在OS 4.0中返回nil

我在OS 3.x上有以下代码

NSString *stringDate = @"2010-06-21T20:06:36+00:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *theDate = [dateFormatter dateFromString:stringDate];
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);
Run Code Online (Sandbox Code Playgroud)

但现在在iOS4模拟器下的最新xcode 3.2.3中,变量theDate为零.

我查看了类引用,并没有看到任何已弃用或使用这些特定方法为iOS4实现不同的内容.我遗漏了什么?

iphone nsdateformatter ios4

26
推荐指数
3
解决办法
1万
查看次数

NSDateFormatter dateFromString和iPhone 24小时格式混淆

我遇到了问题.我得到了12小时格式的传入时间字符串,我将它们转换为NSDate对象.当iPhone处于12小时格式时,没问题.但是当它采用24小时格式时,事情就出错了.以下是一些示例代码:

NSString *theTime = @"3:19 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"h:mm a"]; // "3:19 PM"
NSDate *date = [formatter dateFromString:theTime];
NSString *theString = [formatter stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)

24小时模式,日期是1970-01-01三点19分00秒,而theString是"3:19" -错误

在12小时模式中,日期是1970-01-01 15:19:00,而是"下午3:19" - 右

所以...问题1:为什么设备的24小时设置会覆盖我的日期格式化程序设置?

更重要的是,问题2:如何从12小时到24小时进行正确的转换?

我已经有代码来检测手机是否处于24小时模式,但除了在字符串中挖掘并用15交换3之外,似乎没有干净的方法来执行此操作.

iphone time cocoa-touch nsdateformatter

25
推荐指数
4
解决办法
3万
查看次数

NSDateFormatter在12小时模式下

我有以下代码.

NSDateFormatter *df = ...;
[df setTimeZone:[NSTimeZone defaultTimeZone]];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
NSDate * date = [df dateFromString:date_string]; //here is the problem
Run Code Online (Sandbox Code Playgroud)

在24小时模式下一切都很好.在设备上设置12小时模式时,stringFromDate返回null.date_string的格式也始终相同,日期格式也一样.为什么会这样?

datetime objective-c nsdate nsdateformatter ios

25
推荐指数
3
解决办法
1万
查看次数

如何计算Objective-C中特定日期的一年中的哪一天?

这是我发现自己花了几个小时才弄明白并因此想与你分享的事情.

问题是:如何确定特定日期的一年中的哪一天?

例如,1月15日是第15天,12月31日是第365天,而不是闰年.

iphone objective-c nsdate nsdateformatter

24
推荐指数
3
解决办法
1万
查看次数

NSDateFormatter和iOS11中的当前语言

似乎NSDateFormatteriOS11 中的默认行为已更改.此代码用于根据iOS11之前当前选择的iPhone/iPad语言工作和生成日期格式化程序:

 _dateFormatterInstance = [[NSDateFormatter alloc] init];
 _dateFormatterInstance.timeZone = [NSTimeZone systemTimeZone];
Run Code Online (Sandbox Code Playgroud)

看起来在iOS11中我们必须为它明确指定locale属性:

 _dateFormatterInstance = [[NSDateFormatter alloc] init];
 _dateFormatterInstance.timeZone = [NSTimeZone systemTimeZone];
 _dateFormatterInstance.locale = [NSLocale localeWithLocaleIdentifier:[[NSLocale preferredLanguages] firstObject]];
Run Code Online (Sandbox Code Playgroud)

有人可以证实我的发现吗?

locale nsdateformatter ios ios11

24
推荐指数
2
解决办法
4671
查看次数

在Swift中创建NSDateFormatter?

我是新手,对Objective-C非常不熟悉.有人可以帮我把它转换成Swift吗?我从Ray Wenderlich最好的iOS实践中获得了这段代码 - http://www.raywenderlich.com/31166/25-ios-app-performance-tips-tricks

你会把这段代码放在哪里?它会进入一个充满全局变量的类文件吗?

- (NSDateFormatter *)formatter {
    static NSDateFormatter *formatter;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _formatter = [[NSDateFormatter alloc] init];
        _formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy"; // twitter date format
    });
    return formatter;
}
Run Code Online (Sandbox Code Playgroud)

date objective-c nsdate nsdateformatter swift

23
推荐指数
2
解决办法
1万
查看次数

Nil NSDate试图在祖鲁时间从UTC字符串获取日期

在Objective-C中编写一个iPhone应用程序,我有一个字符串形式的日期(UTC格式,最后用Z表示零UTC偏移,或祖鲁时间),我需要将其解析为一个NSDate对象.

一点代码:

NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSString* str = @"2009-08-11T06:00:00.000Z";
NSDate* date = [df dateFromString:str];
通过调试器运行,date最终nil!我假设它与我的日期格式字符串有关.

如何修复它以正确解析日期字符串?

一个想法是Z在日期格式文字中,将日期格式设置为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'.

这将起作用,除非将Z解析为文字,日期丢失了偏移信息,因此是不明确的,因此被解释为本地时间.

例如,如果要解析的字符串是2009-08-11T06:00:00.000Z(6:00祖鲁时间),它将被解释为当地时间的6:00,然后将应用不正确的偏移量.然后将其解析为2009-08-11T06:00:00.000-600(12:00祖鲁时间),偏移量取决于用户的偏移量.

谢谢!

iphone utc objective-c nsdate nsdateformatter

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

如何在IOS中获取NSArray本地化的星期几名称?

如何在IOS中获取NSArray本地化的星期几名称?

即不想在自己硬编码.有没有一种简单的方法可以从IOS课程中获得这个?我能想到的只是编写一个步骤7天然后使用格式化程序输出星期几的方法并收集这些方法

iphone localization internationalization nsdateformatter ios

22
推荐指数
1
解决办法
7375
查看次数

如何在Swift中以短格式获取当前日期

在下面的图片中,您可以看到我编写的代码和所有变量的值:

class fun getCurrentShortDate() -> String {
    var todaysDate = NSDate()
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"
    var DateInFormat = dateFormatter.stringFromDate(todaysDate)

    return DateInFormat
}
Run Code Online (Sandbox Code Playgroud)

变量值

正如您所看到的那样,当前日期没有问题,但是当我尝试将NSDate更改为字符串时,它就不会这样做了.

date nsdate nsdateformatter swift dateformatter

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

如何使用NSDateFormatter处理不同的日期时间格式

我有一个日期时间格式的字符串:"YYYY-MM-DD HH:MM:SS".

我在我的源代码中使用它:

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"%e. %B %Y"];
NSString *test = [formatter stringFromDate:@"2010-01-10 13:55:15"];
Run Code Online (Sandbox Code Playgroud)

我想从"2010-01-10 13:55:15"转换为"2010年1月10日".但我的实施不起作用.

这有什么不对?

非常感谢提前和最诚挚的问候.

更新的源代码:

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"%Y-%m-%d %H:%M:%S"];
NSString *test1 = [formatter stringFromDate:@"2010-01-10 13:55:15"];

NSDateFormatter *formatter1 = [[[NSDateFormatter alloc] init] autorelease];
[formatter1 setDateFormat:@"%d. %M4 %Y"];
NSString *test2 = [formatter1 stringFromDate:test1];
Run Code Online (Sandbox Code Playgroud)

iphone nsdateformatter

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