Map from Google - Germany

In most of Germany, the climate is moderately continental, with cold winters, in which the average temperature is around 0 °C (32 °F) or slightly higher, and warm summers, when the maximum temperatures are about 22/24 °C (72/75 °F) in July and August.
The northernmost area (see Bremen, Hamburg, Rostock, Kiel) is slightly milder, but also rainier and windier, because of the influence of the Atlantic Ocean. The massifs of south-central Germany and the small portion of the Alps in the far south, have a mountainous climate, of course colder as altitude increases.
Being exposed to both mild currents from the Atlantic Ocean and cold air masses from Russia or the North Pole, Germany's climate is unstable, and can experience remarkable changes and different meteorological situations, such as cold, heat, wind, fog, snow and thunderstorms.

Contrary to what one might think, during winter the least cold area is the north-west, near the border with the Netherlands and Denmark, because it's located closer to the ocean. Here, the average temperature in January is around 1 °C (34 °F). However, this area is subject to strong winds and storm surges.
Here are the average temperatures of Hamburg.
Average temperatures - Hamburg
Min (°C)-1-113711131310620
Max (°C)4481218202222181385
Min (°F)303034374552555550433632
Max (°F)393946546468727264554641

In Hamburg, 775 mm (30.5 in) of rain or snow per year fall, well distributed over the seasons, although there is a relative minimum in spring and a maximum in summer and autumn. Here is the average precipitation.
Average precipitation - Hamburg
Prec. (mm)654065455575757570657080775

Even the western region, along the Rhine River corridor, has an average winter temperature slightly above freezing (0 °C or 32 °F): because of the proximity to France, it is exposed to air masses of Atlantic origin, so that in cities such as Essen, Cologne, Dusseldorf, Frankfurt, the minimum temperature fluctuates around -1/0 °C (30/32 °F), and the maximum around 3/4 °C (37/39 °F). We are therefore not far from the average of New York, even in November and March, when highs are a bit higher, around 8/10 °C (46/50 °F).
On the Baltic coast, the climate is similar to that of the North Sea coast, but the wind blows less frequently and less intensely, and in summer it rains a bit more rarely.
In the cities of the north-east plain, such as Berlin and Dresden, where the climate is slightly more continental, the average January temperature is around freezing. Here are the average temperatures in Berlin:
Average temperatures - Berlin
Min (°C)-2-214912141411620
Max (°C)3491319222424191374
Min (°F)282834394854575752433632
Max (°F)373948556672757566554539

The central plateau of Thuringia, is cold because of the higher altitude, as well as the Harz massif, where snow and frost prevail for a longer period during the winter months.
Bavaria, the southernmost region, experiences the coldest and longer winter, both for the distance from the sea, and for the altitude which begins to rise: in Munich, 500 metres (1,600 feet) above sea level, the January average temperature drops to 0 °C (32 °F), and there are around 100 days per year with temperatures below freezing, at least at night. Here are the average temperatures in Munich.
Average temperatures - Munich
Min (°C)-3-3148111313951-2
Max (°C)3491419222424191474
Min (°F)272734394652555548413428
Max (°F)373948576672757566574539

In Munich, almost 1,000 mm (40 in) of rain or snow per year fall. Here the proximity to the Alps enhances the summer thunderstorms, so the maximum of summer rainfall is evident. Here is the average precipitation.
Average precipitation - Munich
Prec. (mm)504560709513013011085657060965

Proceeding south, we find the mountain area, a thin Alpine strip where winter gets colder with increasing altitude. In Garmisch, a ski resort situated at 700 metres (2,300 feet) above sea level, the January average temperature is -2 °C (28 °F).
Average temperatures - Garmisch
Min (°C)-6-5-2158101073-1-5
Max (°C)2481217192121181372
Min (°F)212328344146505045373023
Max (°F)363946546366707064554536

During winter, snowfalls in Germany are quite frequent, though generally not abundant (except in Bavaria and in the mountains, and sometimes in the north-eastern plain). Snow is more common across the eastern belt, from Bavaria to the Baltic coast, passing through the plains of the former GDR, while it is rarer in the western side, that is in the north-west near the North Sea and in the Rhine corridor.
When cold waves occur from Siberia, the temperatures can plunge to -15/-20 °C in most of Germany, but these periods usually last for a few days in the north and central part, while they are more durable in Bavaria, where the cold air stagnates with more ease. Snowfalls often occur after a wave of Siberian frost, when the Atlantic currents begin to blow again. Later, with the persistence of the westerlies, the temperature rises further and the snow turns into rain.
The westerlies, when they blow more intensely, can bring a fairly mild weather even in winter, with highs around 10/12 °C (50/54 °F) in most of the country, excluding of course the mountainous areas.

In spring, the temperatures rise slowly in March, which is usually still a cold month, with average lows around freezing, while the maximum temperatures range from 8 °C (46.5 °F) in Hamburg, to 9 °C (48 °F) in Berlin and Munich, to 11 °C (52 °F) in Frankfurt and the western areas. In April they range from 12/13 °C (54/55 °F) in Hamburg, Berlin Munich, to 15 °C (59 °F) in Frankfurt. While Frankfurt and western regions may experience the first mild days, late cold spells, typical of spring, coming directly from the north, and passing quickly over the plains of Germany, are felt especially in Bavaria, where they cause snow showers with greater intensity. Even at the beginning of April, short snowfalls with frost at night are possible, especially in Munich and in Bavaria.
Average temperatures - Frankfurt
Min (°C)-1-125912141411730
Max (°C)46111520232625201585
Min (°F)303036414854575752453732
Max (°F)394352596873797768594641

In Frankfurt, 630 mm (25 in) of rain or snow per year fall, so less than Hamburg, due to the greater distance from the sea. Here is the average precipitation.
Average precipitation - Frankfurt
Prec. (mm)453550456060655550555055620

In spring and autumn, in the Alps and the Bavarian valleys, a southern wind called Föhn may blow, descending the mountains, and leading to sudden increases in temperature, with a rapid melting of snow, if present. The phenomenon is rarer in winter, when winds usually don't blow from the south.
From the second half of April, the air gets a bit milder, and in May, when the maximum average temperatures are around 18/20 °C (64/68 °F), the first warm days occur, which in Germany are characterized by possible thunderstorms in the afternoon, especially in inland areas.

What to say about the German summer? The predilection of Germans for Southern Europe countries already gives us an answer... the fact is that the German summer, although it often brings pleasant temperatures, with highs ranging on average around 18/21 °C in the northern coast, to 22/25 °C in the rest of the country, is not very sunny, because the days of prevailing Atlantic weather, with cool air and rain, alternate with those that start with clear skies, and can even get hot, but then in the afternoon thunderstorms often occur. These thunderstorms are less frequent in the northernmost region, which, however, is cooler and may experience more frequent rains due to disturbances coming from the ocean (see Hamburg). In order to have good weather throughout the day in Germany, it takes a strong high pressure area, which is quite rare and in any case does not last long. Anyway, during the hottest days, in Berlin and other cities that are not located near the coast, the temperatures can reach 30/32 °C (86/90 °F) or even more.
The sea is cool even in summer, so it's not the best for swimming: in the North Sea and the Baltic Sea, the water temperature reaches 16 °C (61 °F) in July and 17 °C (63 °F) in August. Along the coasts, a moderate breeze often blowing from the north, so that those who want to sunbathe, often take shelter in special beach chairs equipped with a back protection.
In the mountains, the temperature varies greatly depending on weather conditions, so that, at least at intermediate altitudes, it can be even warm in clear days (which tend to become overcast during the afternoon, with possible thunderstorms), while it changes abruptly when Atlantic cold fronts move over the area; as mentioned, these disturbances in Germany are possible even in summer. At the highest altitudes, snow can fall even in mid-summer.
In Zugspitze, the highest peak in Germany with its 2,962 metres (9,718 feet), it's cold even in summer: the average temperature is around -10.5 °C (13 °F) in winter, and around 2 °C (35.5 °F) in summer.
Average temperatures - Zugspitze
Min (°C)-13-13-12-10-5-200-2-5-10-12
Max (°C)-8-8-7-402442-1-5-7
Min (°F)9910142328323228231410
Max (°F)181819253236393936302319

In addition to the Alps in the south, we find the massif of Harz, isolated in the centre-north of the country, culminating with the Brocken, 1,141 metres (3,743 feet) high. Here the temperature at equal altitude is lower, given the higher altitude. On average, 1,800 mm (70 in) of rain or snow per year fall, with a relative minimum in spring and a maximum in winter, when there are heavy snowfalls. The summit is often foggy.
Here are the average temperatures.
Average temperatures - Brocken
Min (°C)-6-6-4-1468962-3-4
Max (°C)-1-114912141410720
Min (°F)212125303943464843362725
Max (°F)303034394854575750453632

In autumn, September is usually a pleasant month, but then the weather becomes progressively colder, with the first mists as well, and rainy. In addition, winds tend to get stronger, especially in the northern areas. In November, the sun rarely shines; in mid-November it's almost winter, and the first snowfalls are possible.

Beach in Rostock

The sea is very cool even in summer, however, the water temperature reaches 18 °C (64 °F) in August. The North Sea is a bit warmer in winter, while in summer it has the same temperature as the Baltic Sea. Here is the temperature of the sea at Rostock, on the Baltic Sea.
Sea temperature - Rostock
Sea (°C)222510141718151284
Sea (°F)363636415057636459544639

When to go

Since there is not a season which may guarantee stable weather conditions, the main element for choosing the best time to visit Germany is the temperature, as well as the length of the days. From mid-May to September, the temperatures are generally pleasant. Usually, there's no shortage of cool and rainy days, in which highs are around 15 °C (59 °F) or slightly higher, while in other periods, even hot days may occur, with highs around 30 °C (86 °F) or above, although nights remain pleasantly cool.
The month of September is usually appreciated, because of the lower chance of thunderstorms, and because it allows to visit woods and forests to enjoy the autumn colours, however, the days begin to shorten, while in June they are very long, especially in the north.
For summer hiking in the mountains, you must take into account the afternoon thunderstorms; for winter skiing, you may recall that in February the days are longer than in December, so you can take advantage of more daylight hours.

What to pack

In winter: warm clothes, sweater, down jacket, hat, gloves and scarf, raincoat or umbrella.

In summer: light clothes, but also some clothes for spring and autumn, jacket, sweater or sweatshirt; raincoat or umbrella.