首页 > 解决方案 > Swift - 日期更改时区

问题描述

我正在使用 firebase 向用户展示当天的锻炼情况。功能很简单:

REF_LEADERBOARD.document(gymID).collection("resultsWorkout").whereField("date", isEqualTo: someDateTime).getDocuments { (querySnapshot, err) in
      if let err = err {
            print("Error getting documents: \(err)")
         } else {
            for document in querySnapshot!.documents {
               // show workout
            }
         }
      }

像这样定义 someDateTime :

let calendar = Calendar.current
let day = calendar.component(.day, from: date)
let month = calendar.component(.month, from: date)
let year = calendar.component(.year, from: date)

let dateShow = "\(year)/\(month)/\(day)"

let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd HH:mm"
let someDateTime = formatter.date(from: "\(dateShow) 00:00")

此功能在美国运行良好,但在法国却不行。我认为问题来自UTC

在此处输入图像描述

我法国UTC不是-7,这个功能显示“没有结果”......

你知道我怎样才能让代码适用于世界上的每个国家吗?

标签: iosswiftfirebasedategoogle-cloud-firestore

解决方案


推荐阅读