[英]How to get the current date using Date class in Swift
我正在使我的應用程序能夠保存用戶任務,現在我想將日期添加到表格視圖中的副標題中。 現在的問題是我不知道每次用戶創建任務時如何獲取當前日期,對於一些提示可能會很酷,如果我違反任何stackOverFlow規則,我很抱歉:)這是我的表格視圖VC的代碼:
import UIKit
import Foundation
import SwipeCellKit
import CoreData
//MARK: - Protocol to transfer the task Label to main VC:
protocol TaskDelegate {
func updateTaskName(name:String)
}
//MARK: - Tasks View Controller:
class TasksViewController: UITableViewController, SwipeTableViewCellDelegate {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var tasksArray = [Task]()
var delegate: TaskDelegate?
var taskName = ""
override func viewDidLoad(){
super.viewDidLoad()
loadTasks()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}
// MARK: - Table view data source
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return tasksArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "taskCell") as! SwipeTableViewCell
cell.delegate = self
cell.textLabel?.text = tasksArray[indexPath.row].title
cell.imageView?.image = UIImage(named: "icon-unchecked-checkbox.png")
cell.detailTextLabel?.text = ""
return cell
}
// MARK: - Table view delegate methods:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
guard orientation == .right else { return nil }
let deleteAction = SwipeAction(style: .destructive , title: .none) { action, indexPath in
// handle action by updating model with deletion
self.context.delete(self.tasksArray[indexPath.row])
self.tasksArray.remove(at: indexPath.row)
self.delegate?.updateTaskName(name: "")
self.saveTasks()
}
let infoAction = SwipeAction(style: .default, title: .none) { action, indexPath in return }
deleteAction.transitionDelegate = ScaleTransition.default
// deleteAction.transitionDelegate = ScaleTransition.init(duration: 0.50, initialScale: 0.50, threshold: 0.50)
infoAction.transitionDelegate = ScaleTransition.default
// customize the action appearance
deleteAction.image = UIImage(named: "icon-trash")
infoAction.image = UIImage(named: "icon-more")
return [deleteAction, infoAction]
}
// method to customize the behavior of the swipe actions(the delete action):
func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeOptions {
var options = SwipeOptions()
options.expansionStyle = .destructive
options.transitionStyle = .drag
options.buttonSpacing = 10
options.expansionDelegate = ScaleAndAlphaExpansion.init(duration: 0.15, scale: 0.5, interButtonDelay: 0.30)
return options
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
if tableView.cellForRow(at: indexPath)?.imageView?.image == UIImage(named: "icon-checked-checkbox.png") {
let imageBox = UIImage(named: "icon-unchecked-checkbox.png")
tableView.cellForRow(at: indexPath)?.imageView?.image = imageBox
} else {
let imageBox = UIImage(named: "icon-checked-checkbox.png")
tableView.cellForRow(at: indexPath)?.imageView?.image = imageBox
}
}
// MARK: - Class Methods:
//Adding task function:
@IBAction func addPressedButton(_ sender: UIBarButtonItem) {
var textField = UITextField()
let alert = UIAlertController(title: "New Task", message: "Please insert a new task.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
alert.addTextField(configurationHandler: { alertTextField in
alertTextField.placeholder = "Please insert your task"
textField = alertTextField
})
alert.addAction(UIAlertAction(title: "OK", style: .destructive, handler: { action in
//We Add the task into our array of Task objects once we reach into here:
let newTask = Task(context: self.context)
newTask.title = textField.text
self.taskName = newTask.title!
self.delegate?.updateTaskName(name: self.taskName)
self.tasksArray.append(newTask)
self.saveTasks()
self.tableView.reloadData()
}))
self.present(alert, animated: true)
}
func getDate() -> String{
let dateFormatter : DateFormatter = DateFormatter()
// dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.dateFormat = "yyyy-MMM-dd HH:mm:ss"
let date = Date()
let dateString = dateFormatter.string(from: date)
let interval = date.timeIntervalSince1970
return dateString
}
}
這是我的表格視圖的圖片 - https://imgur.com/iFcr1iN
您可以使用 Date class 獲取當前日期
func getDate(date: Date) -> String{
let dateFormatter : DateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MMM-dd HH:mm:ss"
let dateString = dateFormatter.string(from: date)
return dateString
}
如何使用字幕
cell.detailTextLabel?.text = getDate(date:Date())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.