Swift 中的日期格式 TODAY TOMORROW YESTERDAY

2023-11-22

我想将日期显示为6 月 13 日星期六.

如果日期是当天,则应显示Today像那样Tomorrow, 昨天.

我无法同时实现这两个目标

guard let date = Date(fromString: "16 September 2020",
                      format: "dd MMMM yyyy") else { return nil }

        let dateFormatter = DateFormatter()
        dateFormatter.dateStyle = .medium
        dateFormatter.doesRelativeDateFormatting = true

        header.titleLabel.text = dateFormatter.string(from: date)

对于上面的代码,我可以将日期显示为Today Tomorrow 昨天但其他日期没有显示6 月 13 日星期六。我尝试应用日期格式dateFormatter.dateFormat = "EEEE, MMM d"对于相同的dateFormatter它什么也没返回。


设置时 DateFormatter 表现不佳doesRelativeDateFormatting = true并尝试同时应用自定义格式。所以最简单的解决方案是使用 a 给出的格式Style and a Locale

let relativeDateFormatter = DateFormatter()
relativeDateFormatter.timeStyle = .none
relativeDateFormatter.dateStyle = .medium
relativeDateFormatter.locale = Locale(identifier: "en_GB")
relativeDateFormatter.doesRelativeDateFormatting = true

Example

let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "yyyy-MM-dd"

let dates = ["2020-09-01", "2020-09-15", "2020-09-16", "2020-09-30"].compactMap { inputFormatter.date(from: $0)}

for date in dates {
    print(relativeDateFormatter.string(from: date))
}

2020 年 9 月 1 日
昨天
Today
2020 年 9 月 30 日

现在,如果您想应用自定义格式,在使用相同的 DateFormatter 实例时我还没有找到解决方案,因此我们需要为自定义格式创建一个新的格式并将其与检查一起使用,因此我们仅在以下情况下应用自定义格式:这不是今天等

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, MMM dd"

for date in dates {
    let string = relativeDateFormatter.string(from: date)
    if let _ = string.rangeOfCharacter(from: .decimalDigits) {
         print(dateFormatter.string(from: date))
    } else {
        print(string)
    }
}

9 月 1 日星期二
昨天
Today
9 月 30 日星期三

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

Swift 中的日期格式 TODAY TOMORROW YESTERDAY 的相关文章

  • iOS 确定视频中的帧数

    如果我有一个 Swift 中的 MPMoviePlayerController MPMoviePlayerController mp MPMoviePlayerController contentURL url 有没有办法获取视频中的帧数u
  • iOS 何时清理本地应用程序 ./tmp 目录?

    iOS什么时候清理本地应用程序 tmp目录 请注意 这不是一个骗局这个问题 https stackoverflow com questions 3593900 iphone storage in tmp directory 我问的是应用程序
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • 在 Xcode 中查找未使用的文件

    我最近开始开发一个新应用程序 它基本上是我以前制作的应用程序的副本 但做了一些更改 为了制作这个新应用程序 我复制了旧应用程序并删除了一些不需要的内容 我想知道 有没有办法知道 Xcode 中正在使用哪些类文件 或者有什么关于如何查找未使用
  • 在 Swift 中的 For 循环中更改对象的属性

    我创建了一个名为 ShoppingList 的简单结构 struct ShoppingList var shoppingListId NSNumber var title String var groceryItems GroceryIte
  • Xcode11 编辑器(通过“将编辑器添加到右侧”)被禁用

    自从我升级到以来它一直在工作Xcode11 2 几天前注意到了它 现在它不允许我向布局添加编辑器 如同Xcode 11 中引入的编辑器更改 https www avanderlee com xcode xcode assistant edi
  • 广告标识符和标识符ForVendor返回“00000000-0000-0000-0000-000000000000”

    我已经实现了这个方法来获得advertisingIdentifier and identifierForVendor NSString advertisingIdentifier if NSClassFromString ASIdentif
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • Swift PageControl 当前页面上更大的点

    我试图将当前页面的点缩放为大于未 选择 的点 我正在使用滚动视图委托来确定哪个页面是当前的 目前 点的大小没有变化 我将如何实现这一目标 func scrollViewDidEndDecelerating scrollView UIScro
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • AdMob 和 DFP 广告联盟之间的区别?

    我正在尝试在我的 iOS 应用程序上显示横幅广告和插页式广告 但现在我对广告网络感到困惑 AdMob 与 DFP 有何不同 哪一种更适合投放广告 有人可以提供帮助吗 提前致谢 AdMob 是一个广告网络 作为发布商 您可以通过展示从网络投放
  • Swift - 保存在 TableView 中选择的复选标记

    我对 Swift 相当陌生 并且在 TableView 多重选择方面遇到问题 我有多个选择 可以用复选标记进行检查 类似于待办事项列表 当我检查项目时 我希望能够返回 ListView 并保存我的选择 我假设将其保持在已保存状态的代码将位于
  • iOS 搜索栏不显示结果

    更新 这实际上有效 我的自定义单元格的样式尚未出现 因此单元格看起来是空白的 那我怎样才能得到searchResultsTableView使用我的自定义单元格 我在表格视图中实现了搜索栏 当我调试时搜索 过滤所有工作 但是当我在搜索栏中输入
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • 具有隐式授权的 OAuth 应用程序中的客户端模拟

    来自 OAuth 草案 隐式section https datatracker ietf org doc html draft ietf oauth v2 31 section 1 3 2 在隐式授权流程期间发出访问令牌时 授权服务器不对客
  • 从 URL 解析 JSON 最终出现错误 - Swift 5

    我正在尝试用 swift 编写一个函数 从 URL JSON 获取数据 并将其分配给 swift 中的变量 这是函数 func getBikeData guard let url URL string https api citybik e

随机推荐

  • Laravel 5 POST 路由到索引而不是存储

    我正在开发一个 Laravel 5 RESTful API 它似乎没有正确路由 POST 请求 这是我的routes php Route group array prefix gt api v1 function Route resourc
  • XAMPP 中的 phpMyAdmin 出现“配置中定义的 controluser 连接失败”

    我刚刚在 Windows XP 计算机上安装了 XAMPP 但收到一条错误消息 配置中定义的 controluser 连接失败 在安装 XAMPP 之前 我安装了一个 MySQL 数据库并且它有一个密码 我更改了 MySQL 的密码并将其放
  • 如何创建 custom.css 来覆盖 Bootstrap 4 alpha 6 中的变量

    我正在尝试自定义 Bootstrap 4 alpha 6 主题 我想将设置从 variable scss 文件复制到 custom scss 进行覆盖 但我在源代码中没有找到 custom scss 文件 如何在我的项目中添加这个 cust
  • 在 Linux Redhat/CentOS 上为 msodbcsql17 安装 unixODBC >= 2.3.1

    我尝试在使用 CentOS RedHat Linux 的 AWS EC2 上安装 msodbcsql17 这些是我遵循的来自 Microsoft 的步骤 LINK sudo su Download appropriate package f
  • [caffe]:检查失败:检查失败:hdf_blobs_[i]->shape(0) == num(200 vs. 6000)

    我有训练并将数据标记为 data mat 我有 200 个训练数据 包含 6000 个特征 标签为 1 1 已保存在 data mat 中 我正在尝试将数据转换为 hdf5 并使用以下命令运行 C affe load data mat hd
  • AVAudio播放器速率

    所以我尝试在 iOS 5 1 1 中以不同的速率播放声音文件 但完全没有运气 到目前为止 我已经尝试设置 AVAudioPlayer 的速率 player AVAudioPlayer alloc initWithContentsOfURL
  • Rails:违反外键约束

    我有三个模型 Book genre BookGenre 以下是关系 class BookGenre lt ActiveRecord Base belongs to book belongs to genre end class Book l
  • Spark Dataframe的分区数量

    谁能解释一下将为 Spark Dataframe 创建的分区数量 我知道对于 RDD 在创建它时我们可以提及分区的数量 如下所示 val RDD1 sc textFile path 6 但是对于 Spark 数据帧 在创建时看起来我们没有像
  • Scala:强制 A 不是 B 的子类型

    我试图根据参数是否扩展给定的类来重载方法 并且遇到了一些麻烦 使用迈尔斯 萨宾 Miles Sabin 的方法 我生成了以下代码 object ExtendedGenericTypes trait lt lt A B Encoding fo
  • IIS 7 上的 ASP.net MVC 返回空白页面

    我在将 ASP net MVC 2 RC 2 应用程序部署到我的生产环境时遇到一些问题 我让它在开发和测试中都运行良好 主要区别似乎是生产盒尚未升级到 IIS 7 5 当我访问该网站时 我只是看到一个空白页面 如中所述我在 IIS 上部署
  • bootstrap 4 modal-backdrop样式(特定modal)

    我想知道如何更改特定模态的模态背景颜色 不是模态的背景颜色 如果我使用 shown bs modal 并有一些延迟 则可以更改颜色 但我想立即更改背景颜色 希望有人可以帮忙 谢谢 div class modal fade div class
  • 群组成员支持的协议与现有成员的协议不兼容

    我面临与卡夫卡相关的问题 我正在使用当前的服务 Producer 将消息发送到 Kafka 主题 events 该服务正在使用kafka 2 12 v1 0 0 用 Java 编写 我正在尝试将其与示例项目集成spark streaming
  • CSS3 中计算操作数的 LESS 转义中的空白保留

    我想用 LESS 表达以下 CSS a min height calc 2em 4px 因此 为了防止 LESS 尝试计算 我使用 LESS 编写了表达式转义语法 a min height calc 2em 4px 然而 LESS 的缩小引
  • 使用 linq to xml 遍历 xml 树中的每个元素

    我想遍历 xml 中的每个元素和属性并获取名称和值 而无需提前知道元素的名称 我什至有一本关于 linq to xml with C 的书 它只告诉我当我已经知道元素的名称时如何查询以获取元素的值 下面的代码只提供了最高级别的元素信息 我还
  • 将 Enumerable.Range 转换为字符串列表

    在 Linq 中 如何将 Enumerable Range 1 31 转换为字符串列表 var list Enumerable Range 1 31 Select n gt n ToString ToList
  • 使用 Python/PIL 从图像中删除背景颜色

    我一直在努力让它发挥作用 但确实遇到了麻烦 所以非常感谢您的帮助 使用下面的代码 我想将具有指定 RGB 值的特征更改为白色 并将图像中的所有其他特征更改为黑色 即基本上从图像中提取特征 不幸的是 尽管我可以将我想要的特征 extract
  • Java 中序列化对象大小与内存中对象大小

    有没有一种方法可以从 Java 中的序列化对象大小 粗略地 估计内存对象大小 内存中的大小通常在可序列化大小的一半到两倍之间 最极端的例子可能是超过 80 个字节的字节 序列化后在内存中可以是 16 个字节 您可以使用探查器来告诉您对象使用
  • 从客户端的不同文件加载 WCF 配置

    许多人在 WCF 中面临的一个常见问题是无法从不同的配置文件加载客户端配置 当开发人员想要部署一些二进制文件以及独立的配置文件 也可能位于资源文件或另一个配置文件中 以避免修改主配置文件时 这是一种常见的情况 我找到了两个参考资料 http
  • 自定义对话框全屏打开

    我正在开发一个 Android 应用程序 我有一个关于自定义对话框的问题 我这样做是为了打开一个自定义对话框 protected void showSetFriendEmailDialog Create the dialog final D
  • Swift 中的日期格式 TODAY TOMORROW YESTERDAY

    我想将日期显示为6 月 13 日星期六 如果日期是当天 则应显示Today像那样Tomorrow 昨天 我无法同时实现这两个目标 guard let date Date fromString 16 September 2020 format