Next time you should probably
edit your post rather than starting a new thread.
That output is because "23-04" in yyyyMMdd is parsed as "the 4th of the month 0 months before year 23", 0022-12-04.
Your naming conventions are all over the place, so I'm going to assume you've collaged a bunch of code examples together to make this. I'm not sure I understand what you're trying to achieve here, but it looks like you're trying to give the correctly parsed value of any given date in any given format. This is bad form in a bunch of ways.
First, don't use thrown exceptions as program logic. Think of a way to check the incoming date's format rather than filtering it by throwing ParseExceptions.
Second, reduce the amount of processing done as much as possible. This program will iterate over your entire format list for every input, which is very inefficient. It may not seem important given the small number of variants, but what if your formats array was much larger? What if you needed to check a large number of incoming requests?
Third, there's no way to differentiate dd-MM-yyyy from MM-dd-yyyy (02-01-2014, Jan. second or Feb. first?). What is the context of the program? If the input dates are truly unknown, consider where they're coming from. Is it possible to rewrite the program to use Locales?
As an aside, stick to the Java naming conventions (camelCase for variable names), and try to use descriptive names (NewClass, value, parse, and date1 are not descriptive). Also, try to avoid null values - they force you to add additional logic, and can cause errors that are difficult to track down in larger programs.