hi
you are right
it is the DST
DST starts in Germany at march , 26 2.00am -> 3.00am
(Test start 03/20/2017 tested with the DateUtils extension)

and then starts the 1h difference.
and ends October, 29 3.00am -> 2.00am

and i got the day back
So everything works, if you add 1h (i did 12h) to the date difference (in ms) . That is how I solved the problem. And now I learned why ;-)
as a matter of fact Android is right, because the number of hours (and ms) is correct and 23h are not a day and Android uses the ms to calculate the days
greetings rudolph