So, 

if the default timezone for my vm is say CST 

and I parse a date that's in GMT using a SimpleDateFormat ('z') and get a Date object. That gives me a Date ie. timestamp. 

If I want to store that via TimestampType to the database will it store the time in local/default timezone and not GMT? 

Do I have to write my own CustomType if I do not wish it to store the time as a local time? 

If I want to store the time as UTC do I have to use a Calendar in the user defined type that converts the Date to UTC?