尝试在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.
我想将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) 我正在尝试以某种格式打印出日期:
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) 我有一个包含当前日期的字符串,使用它:
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)
我正在dateFromString为nil为0x0.我究竟做错了什么?
我在尝试:
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时间,我该如何实现呢?
谢谢
我正在为一个用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字符串重新排序各种元素?
即时通讯使用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"
好的.我们遇到的问题是我们的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) 在我的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) 我正在尝试创建一个格式化程序,将显示的日期格式转换为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,使用上面的格式无法正确解析.有什么建议?
nsdateformatter ×10
nsdate ×7
ios ×6
objective-c ×5
ios6 ×2
iphone ×2
swift ×2
cocoa ×1
julian-date ×1
nsstring ×1
timestamp ×1
xcode ×1