From documentation:
parse(stringDate)
Constructs a Date from a String. The format of the String depends on the local date format.
parse(datetimeString)
Constructs a Datetime from the given String in the local time zone and in the format of the user locale.
This quite limits the ability of a developer to work with Date/Datetime strings that are in format different from the current user's locale. As a workaround a wrapper utility class should be created to provide the parse(datetimeStringAnyFormat) method that could handle other date/datetime formats.
So why Salesforce don't support parsing different date/datetime strings natively?