datepicker - 日期到字符串 => 时间丢失
问题描述
我正在尝试将日期转换为字符串,以便可以将这些数据保存在 Firestore 中。但是我的 getDate 函数只获取今天的日期,而不是时间
struct NewTaskView: View {
@State var taskTitle = ""
@State var taskFrom = ""
@State var taskFromDate = Date()
var body: some View {
NavigationView {
VStack(alignment: .leading) {
Group { // Type '()' cannot conform to 'View'; only struct/enum/class types can conform to protocols
Text("Task Title")
TextField("Title", text:$taskTitle )
Divider()
Text("From")
DatePicker("", selection: $taskFromDate, in: Date()...)
.labelsHidden()
.onReceive(Just(taskFromDate)) { data in
taskFrom = getDate(date: taskFromDate)
}
Divider()
} .padding(.horizontal, 10)
.font(Font.custom("SFCompactDisplay-Bold", size: 25))
.foregroundColor(.gray)
func getDate(date: Date) -> String {
let formatter = DateFormatter()
formatter.dateStyle = .full
let dateTime = formatter.string(from: date)
return dateTime
}
解决方案
您可以使用以下功能:
func getDate(date:Date) -> String{
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
let updatedAtStr = "2016-06-05T16:56:57.019+01:00"
let updatedAt = formatter.date(from: updatedAtStr)
let result = "\(updatedAt!)".split(separator: " ")
return String(result[0]+" "+result[1])
}
推荐阅读
- java - 如何使用 JPA 创建 ENUM 数组列?
- c++ - 我是否总是必须使用 unique_ptr 来表达所有权?
- shell - 如何使用 shell 命令或 wget 从网页下载 .tgz 文件?
- android - 将base64字符串转换为pdf
- bash - 在 Scons 中将“-W1,-rpath=\$ORIGIN”替换为“-W1,-rpath,\$ORIGIN”
- javascript - Angularjs - 模态对话框显示在默认页面中
- google-sheets - 在 if/query 数据上使用求和公式有问题吗?
- grouping - 从分组中检索基础记录
- r - 在 R 中转换数据结构
- c# - 可以找到 bool 和 SetActive