M W
M W

Reputation: 45

Putting system date into a text field in swift

I'm new to swift and would appreciate some help with string manipulation. I'm trying to get the current date off NSDate and put it into a text field for an app I'm working on. I tried to use NSDateFormatter to put the ios system date into the international form or dd-MM-yyyy, but I just keep getting all these errors and nothing works. I could use the American date format, I just really need it to work. I don't really know swift that much, but I know that other tutorials I tried to follow on stack overflow directed me to put some code in the view controller using NSDate. I worked on some other tutorials and tried to make them do what I needed to and this is the result. It used to create a date and timestamp but I tried to cut the parts out that deal with time. I think I just made it worse.

func convertDateFormatter(date: String) -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"

 guard let date = dateFormatter.date(from: date) else {
     assert(false, "no date from string")
     return ""
 }

 dateFormatter.dateFormat = "dd-MM-yyyy"
 let timeStamp = dateFormatter.string(from: date)
 return timeStamp

 }

My version of swift doesn't recognize NSDate, it wants to change it to just Date, I don't know how it affects how I am supposed to go about doing this. I changed it to just Date in the code and it still doesn't work.

In addition, yesterday my mobile apps teacher and I tried to equate a custom variable and the text field, but it does not work.

 var UIDateStamp = UITextField().self

I could be wording my search incorrectly but I have searched this same query all the different ways I could come up with, but every solution I have tried thus far gives me a lot of errors that my coding class and I cannot solve.

I would greatly appreciate help with this issue.

Upvotes: 1

Views: 3271

Answers (2)

vadian
vadian

Reputation: 285140

If you want a date format depending on the current locale use the timeStyle and dateStyle properties.

This code – as computed property – returns M/d/yy for the US locale

var timeStamp : String {
    let formatter = DateFormatter()
    formatter.timeStyle = .none
    formatter.dateStyle = .short
    return formatter.string(from: Date())
}

A date style medium returns MMM d, yyyy

Upvotes: 1

KKRocks
KKRocks

Reputation: 8322

If you need to system date they you need create function without parameter.

Swift 3

 func convertDateFormatter() -> String {
      let date = Date()
      let formatter = DateFormatter()
      formatter.dateFormat = "dd-MM-yyyy" // change format as per needs
      let result = formatter.string(from: date)
      return result 
    }

Upvotes: 1

Related Questions