Стиль, отображающий дату как относительно сейчас. Фрагмент для воспроизведения (с использованием часового пояса GMT и системного календаря):
Важно: чтобы воспроизвести это, установите системные часы вашего Mac на 8 сентября 2025 года, 3:00 утра. SwiftUI’s relative style uses the current system time as its reference point, so changing the clock is necessary to see the behavior.
Configuration
[*]Mac is set to Central European Time zone (but this behaviour was also reproduced by one of my app's users in the US.)
macOS Sequoia 15.5 < /li>
xcode 16.4 < /li>
Протестировано на симуляторе iOS, и настоящий iPhone, работающий с iOS 18.5 < /li>
< /ul>
struct TestDateView: View {
var body: some View {
// 8. July 10AM to 8. September 3AM = Shows 2 months 2 days
let startDate1: Date = Calendar.current.date(from: .init(calendar: .current, timeZone: .gmt,
year: 2025, month: 7, day: 8, hour: 10, minute: 0, second: 0))!
// 5. July 10AM to 8. September 3AM = Shows 2 months 2 days
let startDate2: Date = Calendar.current.date(from: .init(calendar: .current, timeZone: .gmt,
year: 2025, month: 7, day: 5, hour: 10, minute: 0, second: 0))!
// IMPORTANT!: Need to set MAC's clock to 8. September 3:00 AM to reproduce this bug
VStack {
Text(startDate1, style: .relative)
Text(startDate2, style: .relative)
}
}
}
< /code>
Как именно работает. Relative Style работает внутри? Расчеты, но я хотел бы понять этот подход, так как он наказывается, без таймеров или издателей.
Подробнее здесь: https://stackoverflow.com/questions/797 ... rent-dates
Мобильная версия