- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在我的 iOS 应用程序中,我有一个 NSDate 对象,它应该被转换为一个 NSString,以 UTC/GMT 显示日期和时间:
NSDateFormatter * dateTimeFormatter = [[NSDateFormatter alloc] init];
[dateTimeFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
// OR [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
// OR [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
// OR [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
// OR [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
// OR not specify the TimeZone at all...
NSString *result = [dateTimeFormatter stringFromDate:date];
当我设置断点并检查 date
时,它正确显示为 __NSDate * 2015-08-25 14:03:57 UTC
。但是,生成的字符串是 2015-08-25 16:03:57
,这与我本地时区 (CEST) 中的日期相同。
无论我尝试使用哪种解决方案获取 UTC/GMT 格式的字符串 2015-08-25 14:03:57
,我总是获取本地版本 2015-08-25 16:03:57
。
我发现的所有来源都表明这应该有效。我的错误在哪里?
最佳答案
此代码应该有效:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[formatter setTimeZone:timeZone];
NSDate *now = [NSDate date];
NSString *dateAsString = [formatter stringFromDate:now];
我在您的代码中看到的唯一奇怪的事情是您在设置 NSTimeZone
时使用 dateFormatter
而不是 dateTimeFormatter
。
关于ios - NSDateFormatter stringFromDate : returning local time instead of UTC/GMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32207910/
#define stdDateFormat @"YYYYMMdd'T'hh:mm:ssZ" NSDateFormatter *dateFormat = [[NSDateFormatter alloc]
我使用 NSDateFormatter 将时间戳转换为字符串这是我的代码 let string = NSString(string: timeStamp) let timeSta:NSTimeInte
我做错了什么? 我正在尝试 getNSDateFormatter 使用当前区域设置转换日期的自定义模式。 示例: dateFormat = [[NSDateFormatter alloc] i
简单/基本问题: 如果我不关心格式化所获取的日期,两者之间的性能差异是什么? NSDate *date = [NSDate date]; NSSting *dateString = [NSStri
所以这里有一些我遇到问题的代码: //format the date to a string for echoing it NSDateFormatter* formattedDate = [
所以,我有 let formatter: NSDateFormatter = NSDateFormatter() formatter.dateFormat = "yyyy MM dd" 然后我有 da
我知道这是一个重复的问题,但在 stackoverflow 和 google 上搜索了许多类似的问题后,没有一个解决方案适合我。 我正在尝试将从数据库接收到的日期转换为字符串格式,以便在 iPhone
我有一个字符串格式的日期,格式如下: "2015-11-15 14:16:15 +0000" 我想以本地化格式显示它,甚至计算年龄。要访问 NSDate,我使用以下代码: dateFormatter.
我有一个简单的小测试程序——两个标签和两个按钮。当您点击这两个按钮中的任何一个时,顶部标签会显示相应按钮的 currentTitle 属性。第二个标签应显示点击按钮的时间,但在删除原始“标签”文本后显
我有一些简单的代码可以转换我从 CoreData 检索到的 NSDate。出于某种原因,当相同的代码在其他 View 中工作时,它在此类中不起作用。我究竟做错了什么?下面是有问题的代码和我的日志的屏幕
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"hh:mm:ss
我正在尝试使用 NSDateFormatter 将保存的日期更改为山区标准时间,但它似乎不起作用。 正在输出“currentDate: 2013-02-22 23:20:20 +0000 date W
我正在尝试以 dd:hh:mm:ss< 形式在 IBOutlet 标签中显示 UIDatePicker 输入和现实世界时间的时间差。我的 NSLog 显示了正确的信息,但我很难在标签中显示相同的数据。
我只需要将格式为“2013:07:24 11:05:04”的日期格式化为格式“24-lug-2013”,这是我用来执行此操作的代码: NSDateFormatter *dtF = [[NSDate
您好,我正在尝试格式化我的 NSString。但它不起作用。我尝试了在 stackoverflow 中得到的所有答案,但对我没有任何作用。 NSLog(@"log 1: %@ %@", [dealDe
我有一个字符串如下: 2012-11-01 我想得到一个代表那天的字符串。所以这就是我的处理方式: NSDateFormatter *dateFormatter = [[NSDateForma
我在使用带有 NSDateFormatter 的自定义日期格式化程序将字符串转换为日期时遇到问题。这是一个从今天的日期创建字符串但无法将其转换回 NSDate 的简短示例: NSDateFormatt
我在使用 NSDateFormatter 时遇到了一个奇怪的问题。当然我在这里做错了什么,但我无法弄清楚它是什么,一定是一些小而愚蠢的东西...... 我有一个要格式化的日期。日期是 2012-05-
如何解决这个问题? 第 5 行 它向我显示此错误“无法在 swift 中调用 'stringFromDate' 错误” let today = NSData() let formatter = N
在 Swift 中使用 NSDateFormatter 时遇到问题,有人可以帮忙吗?下面的代码不打印任何内容。 var dateFormatter = NSDateFormatter() printl
我是一名优秀的程序员,十分优秀!