Ios 从日期字符串中分别获取月份和日期

Ios 从日期字符串中分别获取月份和日期,ios,swift,date,Ios,Swift,Date,我有一个这样的约会 2019-12-16 18:30:00+0000 这是我的密码 var utcTime = "\(dic["dueDate"]!)" self.dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" self.dateFormatter.locale = Locale(identifier: "en_US") let date = self.dateFormatter.date(from:utcTime)! print(

我有一个这样的约会

2019-12-16 18:30:00+0000

这是我的密码

 var utcTime = "\(dic["dueDate"]!)"
 self.dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
 self.dateFormatter.locale = Locale(identifier: "en_US")
 let date = self.dateFormatter.date(from:utcTime)!
 print(date)

我想从这个字符串中提取月份和日期。i、 e.从上面的日期字符串中,我分别想要'December'和'16'

我给你举个月的例子,你可以分别得到日期和月值, 访问您的格式链接

您可以这样使用它:

let date = Date()
 let monthString = date.month

尝试同样的方法来约会,我希望它对你有用…:

我给你举个月的例子,你可以分别得到日期和月值, 访问您的格式链接

您可以这样使用它:

let date = Date()
 let monthString = date.month

尝试同样的方法来约会,我希望它对你有用…:

这是您代码中的一个示例。我已将月份和日期存储在单独的字符串中,以显示给您。您可以根据您的要求进行更改

var utcTime = "2019-12-16 18:30:00 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss z"
dateFormatter.locale = Locale(identifier: "en_US")
let date = dateFormatter.date(from:utcTime)!
print(date) //2019-12-16 18:30:00 +0000

dateFormatter.dateFormat = "MMMM"
let strMonth = dateFormatter.string(from: date)
print(strMonth) //December

dateFormatter.dateFormat = "dd"
let strDay = dateFormatter.string(from: date)
print(strDay) //16
您还可以使用Calendar对象获取日期、月份和年份


这是代码中的一个示例。我已将月份和日期存储在单独的字符串中,以显示给您。您可以根据您的要求进行更改

var utcTime = "2019-12-16 18:30:00 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss z"
dateFormatter.locale = Locale(identifier: "en_US")
let date = dateFormatter.date(from:utcTime)!
print(date) //2019-12-16 18:30:00 +0000

dateFormatter.dateFormat = "MMMM"
let strMonth = dateFormatter.string(from: date)
print(strMonth) //December

dateFormatter.dateFormat = "dd"
let strDay = dateFormatter.string(from: date)
print(strDay) //16
您还可以使用Calendar对象获取日期、月份和年份


您可以按如下方式获得日期、月份和年份

let yourDate = Calendar.current.dateComponents([.day, .year, .month], from: Date())
if let day = yourDate.day, let month = yourDate.month, let year = yourDate.year {
   let monthName = Calendar.current.monthSymbols[month - 1]
   // your code here
}

您可以按如下方式获得日期、月份和年份

let yourDate = Calendar.current.dateComponents([.day, .year, .month], from: Date())
if let day = yourDate.day, let month = yourDate.month, let year = yourDate.year {
   let monthName = Calendar.current.monthSymbols[month - 1]
   // your code here
}

有几种方法可以获得预期的结果,您可以选择将此代码与日历一起使用:


有几种方法可以获得预期的结果,您可以选择将此代码与日历一起使用:

欢迎来到堆栈溢出。 您可以尝试以下方法:

let calendar = Calendar.current
calendar.component(.year, from: date)
calendar.component(.month, from: date)
calendar.component(.day, from: date) 
希望它能帮助…

欢迎使用堆栈溢出。 您可以尝试以下方法:

let calendar = Calendar.current
calendar.component(.year, from: date)
calendar.component(.month, from: date)
calendar.component(.day, from: date) 
希望这对……有帮助。

Swift 5

这是您需要的扩展,它返回您想要的具有月份和日期的元组

extension Date {
    func getMonthAndDate() ->(month:String , day:String) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MMMM"

        let month = dateFormatter.string(from: self)

        dateFormatter.dateFormat = "dd"

        let day = dateFormatter.string(from: self)

        return (month,day)
    }
}
斯威夫特5

这是您需要的扩展,它返回您想要的具有月份和日期的元组

extension Date {
    func getMonthAndDate() ->(month:String , day:String) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MMMM"

        let month = dateFormatter.string(from: self)

        dateFormatter.dateFormat = "dd"

        let day = dateFormatter.string(from: self)

        return (month,day)
    }
}

欢迎来到堆栈溢出。请试试这个

func getMonthAndDate(dateString: String) ->(month:String , day:String) {

        guard let date = Date.getMonthAndDate(from: dateString, with: "yyyy-MM-dd'T'HH:mm:ss") else {
            return ("","")
        }
             let dateFormatter = DateFormatter()
             dateFormatter.dateFormat = "MMMM"

             let month = dateFormatter.string(from: date)

             dateFormatter.dateFormat = "dd"

             let day = dateFormatter.string(from: date)

             return (month,day)
         }

extension Date {
    static func getMonthAndDate(from str: String, with formatter: String) -> Date? {
           let dateFormatter = DateFormatter()
           dateFormatter.timeZone = TimeZone.current//(abbreviation: "GMT") //Set timezone that you want
           dateFormatter.locale = NSLocale.current
           dateFormatter.dateFormat = formatter //Specify your format that you want
           return dateFormatter.date(from: str)
       }
}

欢迎来到堆栈溢出。请试试这个

func getMonthAndDate(dateString: String) ->(month:String , day:String) {

        guard let date = Date.getMonthAndDate(from: dateString, with: "yyyy-MM-dd'T'HH:mm:ss") else {
            return ("","")
        }
             let dateFormatter = DateFormatter()
             dateFormatter.dateFormat = "MMMM"

             let month = dateFormatter.string(from: date)

             dateFormatter.dateFormat = "dd"

             let day = dateFormatter.string(from: date)

             return (month,day)
         }

extension Date {
    static func getMonthAndDate(from str: String, with formatter: String) -> Date? {
           let dateFormatter = DateFormatter()
           dateFormatter.timeZone = TimeZone.current//(abbreviation: "GMT") //Set timezone that you want
           dateFormatter.locale = NSLocale.current
           dateFormatter.dateFormat = formatter //Specify your format that you want
           return dateFormatter.date(from: str)
       }
}

有了日期后,请使用DateComponents获取所需的组件。您的日期格式错误。给定的日期中没有“T”,您可以使用DateComponents获取日期、月、年、小时等。表示您希望12月和16日分开,或者12月和16日分开?我希望12月和16日分开separate@testname正如rob所说,你的格式是错误的。它应该是yyyy-MM-dd HH:MM:ss区域如果您有日期,请使用DateComponents获取所需的组件。您的日期格式错误。给定的日期中没有“T”,您可以使用DateComponents获取日期、月、年、小时等。表示您希望12月和16日分开,或者12月和16日分开?我希望12月和16日分开separate@testname正如rob所说,你的格式是错误的。它应该是yyyy-MM-dd HH:MM:ss zcalendar.component.month,from:date-这是一个月数,但问题是关于monthcalendar.component.month的名称,from:date-这是一个月数,但问题是关于monthlet month的名称=yourDate.month!-这是一个月的数字,但问题是关于月份的名称,如你所知,强制展开并不好idea@VadimNikolaev如果让我进去,那就进去。OP的日期格式有天、月、年。所以,我想这里的强制解卷是安全的。是的,感谢您指出字符串类型,我将更新answer@iOSArchitect.com你试过检查你的代码吗?让您的日期为DateComponents,这不是可选的。alllet month=yourDate.month!-这是一个月的数字,但问题是关于月份的名称,如你所知,强制展开并不好idea@VadimNikolaev如果让我进去,那就进去。OP的日期格式有天、月、年。所以,我想这里的强制解卷是安全的。是的,感谢您指出字符串类型,我将更新answer@iOSArchitect.com你试过检查你的代码吗?让您的日期为DateComponents,这不是可选的。他需要月名兄弟他需要月名兄弟