MongoDb BSON stores Date in UTC time
IMO, mongo did everything right. You instantiate date using your local timezone and then store it in mongo in UTC. And then when you ask mongo to retrieve it for you it shifts date to your local timezone again.
If you dont want to deal with timezone shifting, just set your local timezone to UTC using the following flag:
-Duser.timezone="UTC"