Questions & Answers about Zimi često ima snijega, a nebo je puno oblaka.
Croatian often uses the bare dative/locative form of time-related nouns to mean “in X”:
- zima → zimi = in (the) winter
- ljeto → ljeti = in (the) summer
- noć → noću = at night
- dan → danju = by day
So zimi literally means “in winter / during winter” without any preposition. It’s the normal, most natural way to say this.
You can see u zimu in some contexts, but it sounds more marked, specific, or stylistic. For everyday usage, learn zimi as the default for “in winter”.