I've found this in the documenation:
Dates and times are both formatted for the user’s preferred locale. They are displayed in the site’s timezone, however they get stored in UTC like all other dates in Craft.
That's fine.
I use this timezone: UTC+1 (CET) - Europe/Rome
As expected everything is saved in the database with an UTC offset of minus one hour exept the expiryDate in the craft_templatecaches table: the UTC offset is minus two hours.
Here is my code snippet:
{% set expiredNews = craft.entries.section('news').order('expiryDate')|first %}
{% set expiryDate = expiredNews.expiryDate %}
{% cache until expiryDate %}
Example:
expiryDate in entry: 2015-04-01 00:00:00
expiryDate in cache: 2015-03-31 22:00:00
Why is there an offset of two hours and what does that mean for cache invalidation?