Or it's depends on each case? I tested here with 2 second and found it very long. But a coworker told me that 2 second is the default. Is it true?
Any splash screen that you have should be displayed for as short a time as you can (within reason). It isn't content and it isn't what users are interested in, so forcing them to look at it for some pre-determined amount of time (when it's not technically necessary) results in a poorer UX.
So if you can load up the app in 0.5 seconds, then show the splash screen for 0.5 seconds. If it takes 4 seconds to load up the app, then show it for 4 seconds.