Using the date-time API of java.util and their formatting API, SimpleDateFormat I have come across surprises several times but this is the biggest one! 
Given below is the illustration of what you have described in your question:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Main {
    public static void main(String[] args) {
        System.out.println(formatDateWithPattern1("2010-09-29 08:45:22"));
        System.out.println(formatDateWithPattern2("2010-09-29 08:45:22"));
    }
    static String formatDateWithPattern1(String strDate) {
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = fmt.parse(strDate);
            return fmt.format(date);
        } catch (ParseException pe) {
            return "Date";
        }
    }
    static String formatDateWithPattern2(String strDate) {
        SimpleDateFormat fmt = new SimpleDateFormat("dd-MM-yyyy");
        try {
            Date date = fmt.parse(strDate);
            return fmt.format(date);
        } catch (ParseException pe) {
            return "Date";
        }
    }
}
Output:
2010-09-29
03-03-0035
Surprisingly, SimpleDateFormat silently performed the parsing and formatting without raising an alarm. Anyone reading this will not have a second thought to stop using them completely and switch to the modern date-time API.
For any reason, if you have to stick to Java 6 or Java 7, you can use ThreeTen-Backport which backports most of the java.time functionality to Java 6 & 7.
If you are working for an Android project and your Android API level is still not compliant with Java-8, check Java 8+ APIs available through desugaring and How to use ThreeTenABP in Android Project.
Using the modern date-time API:
Since the pattern used in both the functions are wrong as per the input string, the parser should raise the alarm and the parsing/formatting types of the modern date-time API do it responsibly.
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
class Main {
    public static void main(String[] args) {
        System.out.println(formatDateWithPattern1("2010-09-29 08:45:22"));
        System.out.println(formatDateWithPattern2("2010-09-29 08:45:22"));
    }
    static String formatDateWithPattern1(String strDate) {
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd");
        try {
            LocalDateTime date = LocalDateTime.parse(strDate, dtf);
            return dtf.format(date);
        } catch (DateTimeParseException dtpe) {
            return "Date";
        }
    }
    static String formatDateWithPattern2(String strDate) {
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MM-uuuu");
        try {
            LocalDateTime date = LocalDateTime.parse(strDate, dtf);
            return dtf.format(date);
        } catch (DateTimeParseException dtpe) {
            return "Date";
        }
    }
}
Output:
Date
Date
Moral of the story
- The date-time API of java.utiland their formatting API,SimpleDateFormatare outdated and error-prone. Stop using them completely and switch to the modern date-time API. Learn about the modern date-time API at Trail: Date Time.
- Stick to the format in your input date-time string while parsing it. If you want the output in a different format, use a differnt instance of the parser/formatter class.
Demo:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
class Main {
    public static void main(String[] args) {
        String strDateTime = "2010-09-29 08:45:22";
        DateTimeFormatter dtfForParsing = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtfForParsing);
        System.out.println(ldt);// The default format as returned by LocalDateTime#toString
        // Some custom formats for output
        System.out.println("########In custom formats########");
        DateTimeFormatter dtfForFormatting1 = DateTimeFormatter.ofPattern("dd-MM-uuuu HH:mm:ss");
        DateTimeFormatter dtfForFormatting2 = DateTimeFormatter.ofPattern("dd-MM-uuuu");
        DateTimeFormatter dtfForFormatting3 = DateTimeFormatter.ofPattern("'Day: 'EEEE, 'Date: 'MMMM dd uuuu");
        System.out.println(dtfForFormatting1.format(ldt));
        System.out.println(dtfForFormatting2.format(ldt));
        System.out.println(dtfForFormatting3.format(ldt));
        System.out.println("################################");
    }
}
Output:
2010-09-29T08:45:22
########In custom formats########
29-09-2010 08:45:22
29-09-2010
Day: Wednesday, Date: September 29 2010
################################