WidgetKit custom DateFormatter

I'd like to display the number of days til a date inside of a widget, such as "2 days", but when I get to 1 day I want to have it say "Tomorrow", and on the same date to display the time "8:00 PM". I'm currently doing this by getting the number of days between the current date and second date and switching on that number, and creating a new label with different strings. Because widgets don't update automatically I'll have to refresh my widget every day at midnight to have the label re-calculate.

Can I get this same functionality with existing formatters, or subclass DateFormatter myself and have the label refresh periodically as when using Text(date, style: ...)?

I did try subclassing DateFormatter and override string(from:) → String but the text doesn't appear.