2147483647 milliseconds is only about 24.8 days, so that's why it shows up as 1970-01-25 20:31:23.
4294967295 milliseconds is only about 49.7 days, so that's why it shows up as 1970-02-19 17:02:47.
You may be calculating what you expect based on 2147483647 seconds instead of milliseconds. This is not a bug in java.util.Date; convert your seconds value to milliseconds by multiplying by 1000.