A Timestamp doesn't have a timezone. When you display the timestamp as a String, it displays a time and mentions the timezone, because else you couldn't know what time it represents. And it chooses to use the default timezone (yours), because that's the one you're the most familiar with.
Saying, it's 12:00:00 doesn't mean anything. Saying it's 12:00:00 in your timezone means something. But the timestamp only contains an instant in time. You may display this instant in time in any time zone you want using a DateFormat.
Note: Timestamp.valueOf("2010-10-23 12:05:16");
means "create a timestamp with the given time in the default timezone".
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…