Hi @kritsapatw
From your question, I think you should probably take a look at the help documentation for the String to Date&Time and Date&Time to String nodes, and specifically at the section titled “Supported placeholders in the pattern”.
But with regard to a couple of the specific questions you have raised, the difference between MM and mm is that MM represents “Months”, while mm represents “minutes”. These “placeholders” come from Java Simple Date Format, so if you search for that on the web you should find plenty of resources on it, if you require more information than you can find in the KNIME documentation.
When it comes to formatting of dates, the specific output that you get is dependant on your chosen system locale/language. However, these are the patterns it uses for Months (which unfortunately are not described in the documentation for the nodes, which is why I recommend research Java Simple Date Format):
M = either a single or two digit month number (i.e. 1-12) with number of digits according to the value (e.g. <10 → 1 digit, or >=10 → 2 digits)
MM = always a two digit month number so 01-12
MMM = Abbreviated month name, so in UK Jan, Feb, Mar and so on
MMMM = Full month name, so in UK January, February, March
mm on the other hand means minutes, so as @elsamuel pointed out, if you choose dd/mm/yyyy, then you are going to get day/minute/year, which is unlikely to be what you want! 
When it comes to output format of a date or datetime, you need to understand that the output that KNIME produces is according to the java renderer which produces the output in a human-readable form. A date or datetime has no inherent “format”, it is just held internally as a number representing the elapsed period relative to the “epoch” (1 January 1970). If you want to output a date or datetime in a specific format other than the default representation used by the KNIME/Java renderer you need to convert it to a String, and tell the converting node the format that you require.
So if you already have your date in a String in one format, and you wish to output it in a different format, then you need to do the following:
Steps
- Convert String to Date&Time telling it the current input format of the String so it knows how to interpret it, and store it correctly in a Date/Time object
- Convert Date&Time to String telling it the required output format so that it can render it back into a String of the desired format.
The conversion back to String is best done at the point where you want to output it in a specific format. I would suggest leaving it as a Date/Time object during all other processing where the specific output format is not required, as you can then act on it correctly as a date/time (e.g. sort on it, add days, find difference between dates and so on) which you cannot necessarily do once it has become a String.
In summary, for outputting date and datetime values to a report or anything else where a specific format is required, you should always be outputting a String representation of your value, and not the actual datetime object itself.
I hope that helps clear up some of your questions.