Ios Can';无法获取日期类型上的区域设置时间

Ios Can';无法获取日期类型上的区域设置时间,ios,swift,Ios,Swift,我需要当前时间,但代码给我格林威治时间。所以我做了这个。在打印中,我可以得到真实的结果,但在newItem.date中,我得到了错误的结果。我怎样才能解决这个问题 编辑: 仍然不工作。在域中写入日期时,不需要日期格式化程序: realm.beginWrite() 让newItem=ToDoListItem() newItem.date=date()//不是dateFormatter.date(from:dateFormatter.string(from:date())! newItem.item

我需要当前时间,但代码给我格林威治时间。所以我做了这个。在打印中,我可以得到真实的结果,但在newItem.date中,我得到了错误的结果。我怎样才能解决这个问题

编辑:


仍然不工作。

在域中写入日期时,不需要日期格式化程序:

realm.beginWrite()
让newItem=ToDoListItem()
newItem.date=date()//不是dateFormatter.date(from:dateFormatter.string(from:date())!
newItem.item=文本
realm.add(newItem)
尝试realm.commitWrite()
日期
转换为
字符串
,然后再转换回
日期
(使用
日期格式化程序.Date(from:dateFormatter.String(from:Date()))!
)效率低下且不必要

为文本视图准备字符串时,请使用格式化程序:

//使用这个
textView.text=dateFormatter.string(发件人:newItem.date)
//不要使用'Date'对象的字符串插值,例如
//
//textView.text=…+“\n\(newItem.date)”
在哪里

let dateFormatter=dateFormatter()
dateFormatter.dateStyle=.medium
dateFormatter.timeStyle=.short
//日期格式化程序的默认值为当前时区,因此这不是必需的
//
//dateFormatter.locale=locale.current

没有什么需要修复的。日期没有时区。这是一个时间点。当您打印日期时,它将始终显示GMT,除非您使用DateFormatter对其进行本地化并选择时区B tw来显示您的日期格式化程序声明我尝试了它。它仍然不工作@Leodabus您可以为这两个日期添加输出吗?
let date = datePicker.date
let newDate = dateFormatter.date(from: dateFormatter.string(from: date))
let currentDate = dateFormatter.date(from: dateFormatter.string(from: Date()))
let minDate = currentDate
datePicker.minimumDate = minDate

realm.beginWrite()
let newItem = ToDoListItem()
newItem.date = dateFormatter.date(from: dateFormatter.string(from: Date()))!
newItem.item = text
realm.add(newItem)
try! realm.commitWrite()
textView.text = dateFormatter.string(from: newDate!) + "\n\(newItem.date)"
print("NewDate: \(dateFormatter.string(from: currentDate!))")
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .short
dateFormatter.locale = Locale.current
let date = datePicker.date

let newDate = dateFormatter.date(from: dateFormatter.string(from: date))
let currentDate = dateFormatter.date(from: dateFormatter.string(from: Date()))

let minDate = currentDate
datePicker.minimumDate = minDate
realm.beginWrite()
let newItem = ToDoListItem()
newItem.date = dateFormatter.date(from: dateFormatter.string(from: Date()))!
newItem.item = text
realm.add(newItem)
try! realm.commitWrite()
textView.text = dateFormatter.string(from: newDate!) + "\n\(newItem.date)"
print("NewDate: \(dateFormatter.string(from: currentDate!))")