Если вы хотите получить первый день месяца, вы не должны получать дневной компонент от первоначальной даты:
extension Date {
var startOfMonth: Date {
return Calendar.current.date(from: Calendar.current.dateComponents([.year, .month], from: self))!
}
}
Date().startOfMonth.description(with: .current) // "Thursday, November 1, 2018 at 12:00:00 AM Brasilia Standard Time"