Rosbag synchronizes multiple bags when they are played back. According to the rosbag documentation:
If two separate bag files are used, they are treated as a single bag with interlaced times according to the timestamps. This means if you record one bag, wait an hour, and record a second bag, when you play them back together you will have an hour-long dead period in the middle of your playback.
If while playing back a rosbag you want to record a 2nd bag with timestamps that line up with 1st bag, make sure to set /use_sim_time
to true. Otherwise the messages in the new bag will be stamped with the current system time, which is not what you want.
rosparam set use_sim_time true