在Swift中拆分并使用Time Object作为Int

时间:2017-11-04 21:36:18

标签: notifications swift4

在swift中我使用我的DatePickerView来获取用户的一些时间输入。我需要将它转换为当地时间并且效果很好。

守则是:

package main

import (
    "fmt"

    // This assumes that the app/ folder lives directly in $GOPATH if that's
    // not the case the import won't work.
    "app/product"
    "app/user"

    "github.com/gin-gonic/gin"
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres"
)

func main() {
    db, err := gorm.Open("postgres", fmt.Sprintf("host=localhost sslmode=disable user=postgres password="))
    if err != nil {
        fmt.Println(err)
    }
    defer db.Close()

    r := gin.Default()

    // manually initialize imported packages
    user.Init(db, r)
    product.Init(db, r)

    r.Run(":8080")
}

并且示例输出为" 12:30"(这是GMT 3格式,如果我尝试将其转换为日期它将示例转换为" 9:30"。

我的问题是我需要在Local Notifications中使用这段时间,但它只接受dateComponents和dateComponents只接受" .hour"和" .minute"属性。

let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "HH:mm"
    dateFormatter.timeZone = TimeZone.autoupdatingCurrent
    selectedMorningTime = dateFormatter.string(from: morningHour.date)
    selectedEveningTime = dateFormatter.string(from: eveningHour.date)

我如何将时间分为小时和分钟,所以我可以像这个例子一样使用它:

dateComponentsForMorning.hour = 12
dateComponentsForMorning.minute = 30

1 个答案:

答案 0 :(得分:0)

您可以使用日历方法dateComponents从日期选择器中获取时间组件,并使用它来安排通知:

let morningHour = UIDatePicker()
let selectedMorningTime = Calendar.current.dateComponents([.hour,.minute], from: morningHour.date)
print("Hour:", selectedMorningTime.hour!, ", Minute:", selectedMorningTime.minute!)   // "Hour: 2 , Minute: 24\n"