SWIFT:如何向 NSDate 对象添加小时数

2023-11-21

我从字符串生成一个 NSDate 对象。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = NSTimeZone(abbreviation: "GMT")
let stringToDate = dateFormatter.dateFromString(dateFromService) // 2015-07-20 12:00:43 +0000

我从网络服务器获取这个字符串值。我需要修改个人设备时区。想要添加小时数这个 stringToDate 对象但不起作用

var addHours : Int = 2 // 2 hours will be added
var newDate = stringToDate.dateByAddingTimeInterval(addHours)

Use NSCalendarComponents:

let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(
    .CalendarUnitHour, // adding hours
    value: 2, // adding two hours
    toDate: oldDate,
    options: .allZeros
)

Using NSCalendar将考虑闰秒、闰时等因素。

But as 邓肯·C 的回答指出,简单地增加时间绝对是错误的做法。两个时区并不总是相距相同的时间。同样,当我们考虑到夏令时时,这一点尤其正确。 (例如,美国的夏令时开始/结束时间与欧洲不同,亚利桑那州甚至没有do夏令时)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SWIFT:如何向 NSDate 对象添加小时数 的相关文章

随机推荐

  • 单行注释的正则表达式

    我正在尝试制作一个正则表达式来识别评论 它必须开始于 并以新行或结束 图案 现在 我设法得到这个 n r 但我没有成功添加 图案 有小费吗 试试这样 n r n r Matches 字符串的开头 匹配两个正斜杠 n r 不匹配换行符或回车符
  • 是什么原因导致出现“注意:未初始化的字符串偏移量”? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我有一个用户填写的表单 表单上有多个相同的字段 例如
  • 匿名类型集合?

    我正在寻找创建由匿名类型组成的集合的最佳实践 有几种方法 this一个也是最多的答案this线程假设可以在一条语句中构造整个匿名集合 由于匿名类型通常用于替换用于存储临时的类 如中提出的 这个答案 我想避免创建和使用匿名集合的类 因为这个帖
  • 为什么 Spark 作业无法写入输出?

    Setup 我有一个 Spark 作业在具有 10 个节点的分布式 Spark 集群上运行 我正在 HDFS 上进行一些文本文件处理 该作业运行良好 直到最后一步 将输出保存为文本文件 Problem 我得到以下堆栈跟踪 15 04 07
  • 与 SQL 中的 STUFF 等效的函数(MySQL 中的 GROUP_CONCAT / Oracle 中的 LISTAGG)

    有谁知道Firebird 2 5是否有类似于SQL中 STUFF 函数的功能 我有一个包含父用户记录的表 另一个包含与父级相关的子用户记录的表 我希望能够提取用户拥有的 ROLES 的逗号分隔字符串 而无需使用第二个查询 循环遍历给定 ID
  • 如何检测图像中的形状?

    我想检测图像中的圆形 矩形物体并从该物体读取信息 java中有没有对我有帮助的api 例如 检测白色背景中的圆形硬币并获取有关该硬币的信息 例如硬币的价值等 Thanks 这是一个answerC 的类似问题 对于 Java 您可以使用Ope
  • 如何连接本地网络内另一台机器的mongodb数据库?

    我关注这个猫鼬文档在此输入链接描述 mongoose connect mongodb localhost waterDB 使用这个 我可以连接本地机器waterDBmongoDB数据库 我的个人机器本地IP 192 168 1 5 我的服务
  • 防止 Android 上的屏幕旋转

    我想阻止其中一项活动旋转 因为我正在启动 AsyncTask 并且屏幕旋转使其重新启动 有没有办法告诉这个活动 即使用户疯狂地摇晃手机 也不要旋转屏幕 Add android screenOrientation portrait or an
  • 将 pandas/matplotlib 图像直接写入 XLSX 文件

    我正在 pandas matplotlib 中生成绘图 并希望将它们写入 XLSX 文件 我不想创建原生 Excel 图表 我只是将情节写成非交互式图像 我正在使用XlsxWriter 库 引擎 我找到的最接近的解决方案是这个问题的答案 这
  • 如何以编程方式启动 Android 应用程序信息屏幕?

    是否可以启动 应用程序信息 屏幕 即Menu Settings Applications Manage Applications 从另一个应用程序中选择任何应用程序 在 2 2 及更低版本中 没有可以访问的公共 API 但您仍然可以启动已安
  • django_tables2 中的自定义列

    我已经对此进行了搜索 但运气不佳 因此寻求一些帮助 我正在尝试使用模型中的函数定义向模型定义的表添加一些额外的列 这是我的代码现在的样子 models py class MyModel models Model my field model
  • 未找到类型“hyper::mime::Mime”的名为“from_str”的函数或关联项

    我正在使用 Hyper 0 11 它重新导出板条箱 mime 我正在尝试从字符串创建 MIME 类型 extern crate hyper fn main let test1 hyper mime Mime from str text ht
  • .NET 进程的内存转储中存在大量无法解释的内存

    我无法解释 C 进程使用的大部分内存 总内存为 10 GB 但可访问和不可访问的对象总数为 2 5 GB 我想知道这 7 5 GB 可能是什么 我正在寻找最有可能的解释或方法来找出这个记忆是什么 Here is the precise si
  • JVM 中不断增长的驻留大小集

    我有一个在 64 位 LINUX 上运行的 JAVA 进程 版本为 CentOS Linux release 7 3 1611 内存为 7 6GB 下面是一些使用的 JVM 标志 Xmx3500米 Xms3500米 XX 最大元空间大小 4
  • 在 Mac OS X Mavericks 上安装 Gstreamer-1.0 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在 Mac OS X Mavericks 上安装 Gstreamer 1 0 所以我已经安装了 gstreamer 1 0 1 6 0 x86 64 pkg 和 gstreame
  • 如何处理在 Yii2 上发布的 Vue/Axios Json Payload 数据

    我花了一段时间才明白这一点 因为它有点明显 我会自己回答 这样其他人就可以从答案中受益 当然也可以看看是否有更好的方法来做到这一点 该问题基于 Axios Yii2 但我想这同样适用于向 Yii2 发送数据的其他前端库 框架 我需要从 Vu
  • nodejs fs.utimes 使用什么格式

    在nodejs中 参数fs utimes应该写成什么格式 例如atime mtime API fs utimes path atime mtime callback 这些参数是 JavaScriptDates 而不是字符串 来自文档 请注意
  • jQuery 设置选择索引

    我有一个选择框
  • 如何重写 Laravel Facade 方法?

    我想重写 Laravels 的 Mail 类的外观方法 send 只需拦截它 强制进行一些检查 然后如果它通过触发parent send 做这个的最好方式是什么 Facade 并不是这样工作的 它本质上有点像一个包装类 调用它所代表的底层类
  • SWIFT:如何向 NSDate 对象添加小时数

    我从字符串生成一个 NSDate 对象 let dateFormatter NSDateFormatter dateFormatter dateFormat yyyy MM dd HH mm ss dateFormatter timeZon