如何在Swift中设置TimeZone

问题描述 投票:-1回答:1

我正在创建一个应用程序,当他/她选择他们想要的时间(例如:约会)并单击按钮时,该应用程序会将电子邮件发送到选定的电子邮件。电子邮件有效,但是他们选择的时间转换为GMT + 0,而不是我的本地时间。我尝试搜索此文件,但到目前为止没有运气。我正在尝试在UIDatePicker上配置时区,是否有任何选项或代码可以解决此问题?

我想将时区设置为GMT + 3,或者我希望应用程序自动检测时区。

@IBAction func SendButton(_ sender: Any) {
        showMailComposer()

           showMailComposer()

        print(ServiceA)
    }

    func showMailComposer() {

        guard MFMailComposeViewController.canSendMail() else {
            //Show alert informing the user
            return
        }

        let composer = MFMailComposeViewController()
        composer.mailComposeDelegate = self
        composer.setToRecipients(["[email protected]"])
        composer.setSubject("Booking")
        composer.setMessageBody("Name: \(nameField.text!) \n\nPhone: \(emailField.text!) \n\nDate/Time: \(datePicker.date)", isHTML: false)

        present(composer, animated: true)
    }

    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

           if let _ = error {
               //Show error alert
               controller.dismiss(animated: true)
               return
           }

           switch result {
           case .cancelled:
               print("Cancelled")
           case .failed:
               print("Failed to send")
           case .saved:
               print("Saved")
           case .sent:
               print("Email Sent")
           @unknown default:
               break
           }

           controller.dismiss(animated: true)
       }

ios swift timezone uidatepicker
1个回答
0
投票

您可以使用Swift DateFormatter使日期更易于阅读,并针对时区差异进行调整。

    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .long
    dateFormatter.timeStyle = .none

    // Then select your timezone.
    // Either by abbreviation or defaulting to the system timezone.
    dateFormatter.timeZone = TimeZone(abbreviation: "EST")
    dateFormatter.timeZone = TimeZone.current

    let dateString = dateFormatter.string(from: date)

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.