Jeśli utworzę numer Date()
, aby uzyskać aktualną datę i godzinę, chcę utworzyć nową datę, ale z inną godziną, minutą i zerową sekundą, jaki jest najłatwiejszy sposób na zrobienie tego za pomocą Swift? Znalazłem tak wiele przykładów z "dostaniem", ale nie "ustawieniem".Jak zmienić godziny i minuty bieżącego dnia w Swift?
7
A
Odpowiedz
29
Zastosowanie NSDateComponents
:
Swift 3:
let gregorian = Calendar(identifier: .gregorian)
let now = Date()
var components = gregorian.dateComponents([.year, .month, .day, .hour, .minute, .second], from: now)
// Change the time to 9:30:00 in your locale
components.hour = 9
components.minute = 30
components.second = 0
let date = gregorian.date(from: components)!
Swift 2:
let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let now = NSDate()
let components = gregorian.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: now)
// Change the time to 9:30:00 in your locale
components.hour = 9
components.minute = 30
components.second = 0
let date = gregorian.dateFromComponents(components)!
Zauważ, że jeśli zadzwonisz print(date)
czas drukowany jest w UTC. Jest to ten sam moment w czasie, wyrażony w innej strefie czasowej niż Twoja. Użyj NSDateFormatter
, aby przekonwertować go na czas lokalny.
13
Swift 3 data przedłużenia ze strefy czasowej
extension Date {
public func setTime(hour: Int, min: Int, sec: Int, timeZoneAbbrev: String = "UTC") -> Date? {
let x: Set<Calendar.Component> = [.year, .month, .day, .hour, .minute, .second]
let cal = Calendar.current
var components = cal.dateComponents(x, from: self)
components.timeZone = TimeZone(abbreviation: timeZoneAbbrev)
components.hour = hour
components.minute = min
components.second = sec
return cal.date(from: components)
}
}
+1
Myślę, że musisz uwzględnić '.timeZone' w komponentach – Daniel
Powiązane problemy
- 1. Pandas DataFrame krojenie według dnia/godziny/minuty
- 2. wykresy Gantta javascript - wykresy danych według dnia/godziny/minuty
- 3. Format czasowy etykieta do godziny: minuty: sekundy w Swift
- 4. Konwersja czasu dziesiętnego na godziny i minuty
- 5. Aplikacja wyświetla nieprawidłowe godziny i minuty.
- 6. Java konwertuje int na godziny i minuty
- 7. Uzyskiwanie tylko godziny/minuty datetime
- 8. Konwertuj godziny: minuty: sekundy na wszystkie minuty w programie Excel
- 9. R: Konwersja godziny: minuty: sekundy
- 10. Jak przekonwertować TimeSpan na 24 godziny i minuty String?
- 11. Konwersja dziesiętna na godziny Minuty i sekundy w C# .Net
- 12. Jak przekonwertować minuty na godziny/minuty i razem dodać różne wartości czasu za pomocą jQuery?
- 13. Znajdź górny adres URL odwiedzin z ostatniego dnia, ostatniej godziny lub ostatniej minuty?
- 14. PHP - Konwersja milisekund do godziny: minuty: Seconds.fractional
- 15. Java8 java.time: jak zmienić dzień tygodnia i godzinę rozpoczęcia dnia?
- 16. Oracle Konwertuj sekundy na godziny: minuty: Sekundy
- 17. Uzyskaj godziny i minuty (GG: MM) od daty
- 18. Jak przekonwertować datetime.timedelta na minuty, godziny w Pythonie?
- 19. Jak uzyskać znacznik czasu bieżącego miesiąca, pierwszego dnia miesiąca, godziny zero
- 20. Konwertuj milisekundy na godziny i minuty, używając aplikacji Momentjs
- 21. Jak dodać godziny, minuty, sekundy do dateadd sql?
- 22. Schemat iskrzenia: DateDiff dwóch kolumn według godziny lub minuty
- 23. czas w formacie, aby wyświetlić godziny, minuty, sekundy
- 24. Jodobime początek dnia i koniec dnia
- 25. Jak uzyskać godzinę dnia dzięki Swift?
- 26. znajdowanie dnia rozpoczęcia (poniedziałek) bieżącego tygodnia
- 27. Jak odjąć minuty
- 28. Jak ustawić czas na północ dla bieżącego dnia?
- 29. Jak przekonwertować milisekundy na godziny i dni?
- 30. Jak rozbić NSTimeInterval na rok, miesiące, dni, godziny, minuty i sekundy na iPhonie?
Gdyby spróbować go z 'NSDateFormatter'? i użyj 'dateFromString' z niego – Lee
https://gist.github.com/anishparajuli555/ee678fe3e3be39a31aba ten punkt może ci pomóc –
Myślę, że ta odpowiedź jest lepsza niż konwersja na ciąg iz powrotem. Właśnie dlatego zapytałem "najprostszy sposób" w moim pytaniu. Wiem, że jest kilka sposobów na zrobienie tego, ale myślę, że używanie komponentów jest najlepsze. – u84six