diff --git a/Sources/SkipFoundation/DateComponents.swift b/Sources/SkipFoundation/DateComponents.swift index 32fb445..8919a47 100644 --- a/Sources/SkipFoundation/DateComponents.swift +++ b/Sources/SkipFoundation/DateComponents.swift @@ -219,7 +219,7 @@ public struct DateComponents : Codable, Hashable, CustomStringConvertible { cal.set(java.util.Calendar.SECOND, second) } if let nanosecond = self.nanosecond { - cal.set(java.util.Calendar.MILLISECOND, nanosecond * 1_000_000) + cal.set(java.util.Calendar.MILLISECOND, nanosecond / 1_000_000) } return cal diff --git a/Tests/SkipFoundationTests/DateTime/TestCalendar.swift b/Tests/SkipFoundationTests/DateTime/TestCalendar.swift index 8a9e467..bb5ec20 100644 --- a/Tests/SkipFoundationTests/DateTime/TestCalendar.swift +++ b/Tests/SkipFoundationTests/DateTime/TestCalendar.swift @@ -307,13 +307,17 @@ class TestCalendar: XCTestCase { func test_addingComponents() { let calendar = Calendar(identifier: Calendar.Identifier.gregorian) - let thisDay = calendar.date(from: DateComponents(year: 2016, month: 10, day: 4))! + let thisDay = calendar.date(from: DateComponents(year: 2016, month: 10, day: 4, hour: 1, minute: 2, second: 3, nanosecond: 4))! let dayAfter = calendar.date(byAdding: .day, value: 1, to: thisDay) - let dayAfterComponents = calendar.dateComponents(Set([Calendar.Component.year, Calendar.Component.month, Calendar.Component.day]), from: dayAfter!) + let dayAfterComponents = calendar.dateComponents(Set([Calendar.Component.year, Calendar.Component.month, Calendar.Component.day, Calendar.Component.hour, Calendar.Component.minute, Calendar.Component.second, Calendar.Component.nanosecond]), from: dayAfter!) XCTAssertEqual(dayAfterComponents.year, 2016) XCTAssertEqual(dayAfterComponents.month, 10) XCTAssertEqual(dayAfterComponents.day, 5) + XCTAssertEqual(dayAfterComponents.hour, 1) + XCTAssertEqual(dayAfterComponents.minute, 2) + XCTAssertEqual(dayAfterComponents.second, 3) + XCTAssertEqual(dayAfterComponents.nanosecond, 0) } func test_matchesComponents() {