Map from Google - Germany

In most of Germany, the climate is moderately continental, with cold winters, in which the daily average temperature is around 0 °C (32 °F) or slightly higher, and warm summers, when the maximum temperature is 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, which becomes of course colder as altitude increases.
Being exposed to both mild air masses 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, in 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 sea storms.
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

The amount of sunshine in Hamburg is not high: the sun rarely shines from November to February, while it goes a bit better from May to August, when the weather is variable, and between a disturbance and the other the sun can come out. There are on average 6.5/7 hours of sunshine per day from May to August.
Sunshine - Hamburg
Sun (hours)224677775321

The western region, along the Rhine River corridor, has also an average temperature in winter 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), while in November and March highs are 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 chances of summer thunderstorms, so there's and evident peak in the summer rainfall. Here is the average precipitation.
Average precipitation - Munich
Prec. (mm)504560709513013011085657060965

Proceeding south, we find a mountainous 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 average temperature in January 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 plains of the former GDR, and up to the Baltic coast, while it is rarer in the western part, that is in the north-west near the North Sea and in the Rhine corridor.
During cold waves from Siberia, temperatures can plunge to -15/-20 °C (-4/5 °F) in much of Germany, but these periods usually last for a few days in the north and central part, while they tend to last longer in Bavaria, where cold air stagnates with more ease. Snowfalls often occur after a wave of Siberian frost, when the winds from the Atlantic begin to blow again. Later, with the persistence of the westerlies, the temperature rises further and the snow turns into rain.
The westerly winds, when they blow more intensely, can bring a fairly mild weather even in winter, with highs around 10/12 °C (50/54 °F) in much of the country (except the mountainous areas).

In spring, temperatures rise slowly in March, which is usually a cold month, with average lows around freezing, while highs range from 8 °C (46 °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 and Munich, to 15 °C (59 °F) in Frankfurt. While Frankfurt and the 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 a higher frequency. Even in early April, short snowfalls with frost at night are possible, especially in Munich and in Bavaria.
Here are the average temperatures in Frankfurt.
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 in 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 valleys of Bavaria, the Föhn may blow, a southern warm wind which descends from the mountains, and brings a sudden increase in temperature, causing a rapid melting of snow, if present. The phenomenon is rarer in winter, when the wind usually doen't blow from the south.
From the second half of April, the air becomes a bit milder, and in May, when the average maximum temperature is 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 beaches and towns of Southern Europe already gives us an answer... the fact is that the German summer, although it often brings pleasant temperatures, with highs ranging on average from 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, cool and rainy, alternate with those in which a high pressure of Mediterranean origin prevails, which begin with clear skies, and can even be hot, but then thunderstorms often occur in the afternoon. 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 Atlantic 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, on warmer 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.
In the mountains, the temperature varies greatly depending on weather conditions, so that it can be even hot on clear days (which tend to become overcast during the afternoon, with possible thunderstorms), at least at intermediate altitudes, while it changes abruptly when Atlantic cold fronts, which as mentioned in Germany can pass even in summer, move over the area. 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

Zugspitze is also the sunniest place in Germany in winter, as it is often above the layer of clouds or mists which affects the plains and the valleys. Instead, clouds or fogs often form in summer, especially from noon onwards.
Sunshine - Zugspitze
Sun (hours)455665666644

In addition to the Alps in the south, we find the Harz Mountains, which are isolated in the centre-north of the country, and whose highest point is the Brocken, 1,141 metres (3,743 feet) high. Here the temperature at equal altitude is lower than in the Alps, given the higher latitude. 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 as rainy. In addition, winds tend to get stronger, especially in the northern areas. In November, the sun rarely shines; in mid-November it is practically 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. Along the coasts, a moderate breeze often blows from the north, so that those who want to sunbathe, often take shelter in special beach chairs equipped with roof and back protection.
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 no 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. Sometimes there can be 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 the 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 chance of afternoon thunderstorms; for winter skiing, it is worthwhile to 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.