swift - 时间和日期格式化程序 SwiftUI JSON 数据

标签 swift swiftui swift5

希望这是一个简单的过程。我正在尝试使用 SwiftUI 在 iOS 应用程序中的列表中显示日期和时间。我目前遇到代码问题并收到此错误消息:无法将“PostListViewModel”类型的值转换为预期参数类型“Data”

请找到下面的代码:

struct PostViewModel {
    var post: Post
    init(post: Post) {
        self.post = post
    }
    var startTime: Date {       
        let data = PostListViewModel()
        let decoder = JSONDecoder()
        decoder.dateDecodingStrategy = .formatted(DateFormatter.DateFormat)
        let postDate = try! decoder.decode(startTime.self, from: data)
        return self.post.startTime
    }    
}

extension DateFormatter {
    static let DateFormat: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateFormat = "MMM d"
        formatter.calendar = Calendar(identifier: .iso8601)
        formatter.timeZone = TimeZone(secondsFromGMT: 0)
        formatter.locale = Locale(identifier: "en_US_POSIX")
        return formatter
    }()
}

你能看出代码有什么问题吗?

最佳答案

如果要将日期字符串转换为 Date,然后转换为另一个日期字符串,请使用一个日期格式化程序和两个不同的日期格式字符串

struct PostViewModel {
    var post: Post

    init(post: Post) {
        self.post = post
    }

    var startTime: String {       
        let formatter = DateFormatter()
        formatter.timeZone = TimeZone(secondsFromGMT: 0)
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        if let date = formatter.date(from: post.startTime) {      
           formatter.dateFormat = "MMM d"
           return formatter.string(from: date)
        } else {
           return post.startTime
        }
    }    
}

关于swift - 时间和日期格式化程序 SwiftUI JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59254946/

相关文章:

iOS Swift - prepareForSegue - indexPathForSelectedRow

ios - 如何快速绕过本地连接

swift - 如何在 SwiftUI 中为 Start->Max->Start 设置动画?

UITableView editActionsForRowAt 在 Swift 5 中对 nil 的 react 不正确

urlsession - 如何使用 swift 5 URLSession 中引入的新 Result 类型?

ios - 隐藏目标 VC-Swift 中的开关

ios - 不同的图像取决于用户屏幕尺寸

ios - SwiftUI 导航链接和 ScrollView 问题

swift - 在 SwiftUI (Xcode 12) 中折叠侧边栏

swift - 在 Swift 包中包含 Playgrounds 的正确方法是什么?