如何使NSDate()打印当前的本地时间

时间:2015-12-29 11:25:24

标签: ios swift nsdate

我在游乐场尝试了这个(我在评论中显示它打印的内容):

extension NSDate {

    static func currentDate() -> NSDate {
        let calendar = NSCalendar.currentCalendar()
        calendar.timeZone = NSTimeZone.localTimeZone()
        calendar.locale = NSLocale.currentLocale()

        let components = calendar.components([.Year, .Month, .Day], fromDate: NSDate())
        components.hour = 00
        components.minute = 00
        components.second = 00

        return calendar.dateFromComponents(components)! // "Dec 29, 2015, 12:00 AM"
    }
}

print(NSDate.currentDate()) // "2015-12-28 22:00:00 +0000

任何人都知道这里发生了什么?

我只想要当前日期(年/月/日)。我做了这个扩展,因为我遇到NSDate()的问题,它被关闭了2个小时(显​​示上午11.24,而不是下午1.24)

1 个答案:

答案 0 :(得分:1)

Swift中的[NSDate date]和Objective-C中的let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = /*your desired format*/ let date = dateFormatter.dateFromString(/*your date string*/) 都保留了UTC日期。你无法改变它的行为。

但是,您可以创建格式化程序并转换为所需的区域设置和日期格式,并将日期存储为字符串值。

 <TextView
        android:id="@+id/rotated"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="#AA000F"
        android:rotation="-50"
        android:text="ABC"
        android:textColor="#44CC44"
        android:textSize="32sp" />