I have MVC3 project with Entity.
I have Data Annotation on DateTime property with DisplayFormat(DataFormatString="{0:dd/MM/yyyy hh:mm:ss}")
Controller with method which has entity as argument and calling view with same entity object, which displaying its date property.
So, I open browser and enter link http://site/entity/method?dateproperty=01/09/2012 01:02:03 (1 September 2012) and it displays 09/01/2012 01:02:03 (9 January 2012).
In view I’m using DisplayFor it’s displaying like dd/MM/yyyy as I have a set DisplayFormat.
Problem is that it’s reading like MM/dd/yyyy instead of dd/MM/yyyy, any solution?
P.S. I have tried globalization in web.config <sysmte.web> but didn’t help.
I suspect the problem is that you haven’t specified
ApplyFormatInEditMode = truein your attribute, so it’s parsing using the default format, but formatting with the format you’re specifying.I’m not an MVC dev by any means, but if you want the same format to be used in both directions, I believe you can just change your attribute to:
Note that I’ve changed
hhtoHH, as I suspect you want a 24-hour format. I’d actually suggest usingyyyy-MM-ddTHH:mm:ss(ISO-8601) as a less ambiguous format for the URL parameter – with a more user-centric display format, of course.