I need to change/update/set my system (windows7) default dateTime format programatically and permanently until I change it myself through code or through window
I tried manually changing the registry keys mentioned in your question.
Here's what I did:
I then opened Windows Explorer and all of the dates were shown in the new format, so this is definitely the right place in the registry.
I then tried the code you supplied to modify the registry and it, too, is changing the date shown in Explorer.
So, this leads me to believe that the Windows taskbar clock does not react to changes to this setting. I confirmed this by killing and restarting 'explorer.exe' from the Task Manager. If you restart Explorer you too should see the change take effect.
Edit: there appears to be no facility in .NET for setting the locale settings directly. You can, however, use P/Invoke to set it via the C++ Win API which should then cause the system clock (and other applications) to be notified of the change. See this discussion.