The Answer by Federico klez Culloca is correct, and historically interesting.
In addition to that, I’ll point out that you are using terrible date-time classes that were supplanted years ago by the modern java.time classes defined in JSR 310. We can use java.time to see the change in offset explained in that other Answer.

Here is a rewrite of your code to avoid those legacy classes.
First, establish the date.
int year = 1947;
int month = 2;
int day = 23;
LocalDate localDate = LocalDate.of(year,month,day);
Next, pick a couple of time-of-day values. 1 AM is before the 2 AM jump to 3 AM, and 4 AM is after the jump. Let's look at both.
LocalTime beforeJump = LocalTime.of( 1 , 0 ) ;
LocalTime afterJump = LocalTime.of( 4 , 0 ) ;
Define the time zone as a ZoneId.
ZoneId zoneId = ZoneId.of( "Europe/Prague" ) ;
Combine to determine a moment, getting a ZonedDateTime object.
ZonedDateTime zdtBeforeJump = ZonedDateTime.of( localDate , beforeJump , z );
ZonedDateTime zdtAfterJump = ZonedDateTime.of( localDate , afterJump , z );
When run:
zdtBeforeJump.toString() = 1947-02-23T01:00Z[Europe/Prague]
zdtAfterJump.toString() = 1947-02-23T04:00+01:00[Europe/Prague]
We can see in that generated text that the offset-from-UTC changed from zero hours-minutes-seconds as indicated by the Z (Zulu time) to an offset of 1 hour ahead of UTC.
We can interrogate for the offsets by code. From the ZoneId object, obtain the zone rules as a ZoneRules object. This provides a history of the past, present, and future changes to the offset used by the people of this particular region.
Adjust from our time zones to an offset of zero, producing the Instant object required by ZoneRules#getOffset. Then ask the rules for the exact offset-from-UTC in effect at that moment in that zone. We get a ZoneOffset object as a result.
ZoneRules rules = z.getRules();
ZoneOffset offsetBeforeJump = rules.getOffset( zdtBeforeJump.toInstant() );
ZoneOffset offsetAfterJump = rules.getOffset( zdtAfterJump.toInstant() );
When run.
offsetBeforeJump.toString() = Z
offsetAfterJump.toString() = +01:00
You can see all that code together run live at IdeOne.com.
➥ Same results as we saw with the generated text: Zero offset before the jump, and +01:00 after the jump.
About java.time
The java.time framework is built into Java 8 and later. These classes supplant the troublesome old legacy date-time classes such as java.util.Date, Calendar, & SimpleDateFormat.
To learn more, see the Oracle Tutorial. And search Stack Overflow for many examples and explanations. Specification is JSR 310.
The Joda-Time project, now in maintenance mode, advises migration to the java.time classes.
You may exchange java.time objects directly with your database. Use a JDBC driver compliant with JDBC 4.2 or later. No need for strings, no need for java.sql.* classes. Hibernate 5 & JPA 2.2 support java.time.
Where to obtain the java.time classes?