954,514 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Want Date Format in dd/mm/yyyy in ASP.Net With C#.

Dear Friend,

I am new in ASP.Net with c#.

I want date in a dd/mm/yyyy format with validation in TextBox . Is anybody guide me how shall ?

As I got date with dd/mm/yyyy but it will also accept 32/02/2005. Though Feb has less 30 days.

Also when I compare two textbox it will not evalute properly. eg I want TextBox2 date greater then TextBox1. So I had used
CompareValidator, & select type="date" but it will not evalute.

Pl guide me.


Thanking You,

frmsasp
Newbie Poster
8 posts since Sep 2005
Reputation Points: 10
Solved Threads: 0
 

How about something like this

private void DateSubmit_Click(object sender, System.EventArgs e)
		{
			DateTime date1, date2;
			bool date1OK, date2OK;
			date1 = new DateTime(1,1,1);
			date2 = new DateTime(1,1,1);
			try
			{
				date1 = Convert.ToDateTime(Date1.Text);
				date1OK=true;
			}
			catch
			{
				date1OK = false;
			}
			try
			{
				date2 = Convert.ToDateTime(Date2.Text);
				date2OK=true;
			}
			catch
			{
				date2OK = false;
			}
			if(date1OK && date2OK)
			{
				if(date1.CompareTo(date2) > -1)lblResult.Text = "Date2 must be after Date1";
				else
				{
					//do whatever here
				}
			}
			else lblResult.Text = "Invalid date format. Please check your input in the Date1 and Date2 fields";
		}
campkev
Posting Pro in Training
484 posts since Jul 2005
Reputation Points: 14
Solved Threads: 19
 

You can use the asp:CustomValidator control of ASP.NET to achieve the mentioned functionality.

The HTML would look like:

and on server side (code behind of the page) you would have a public method like :

public void CustomValidaorMethod(object source, ServerValidateEventArgs args)
{
string valuePassed = string.Empty;
if(args.Value != null)
valuePassed = args.Value;
DateTime dt = DateTime.MinValue;
args.IsValid = true;
try
{
IFormatProvider format = new CultureInfo( "en-US");

//write custom code to validate date time or just parse it
using DateTime.Parse

dt = DateTime.Parse(valuePassed,format,DateTimeStyles.None);
}
catch
{
args.IsValid = false;
}
}

This would validate the Textbox content, also when you want to compare, you can use asp:CompareValidator to do it:
it would look like

One thing that must be kept in mind when using Asp.Net validators that post back methods should always check for Page.IsValid value that tells the page if validators returned true or false and then proceed further.

There is one more exciting thing you can do: you can enable client script function and write a client script function to do it using a script language say javascript.

(This i leave for you to figure out)


Thanks,
Ashwani

v_ashwani
Newbie Poster
5 posts since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

Try from Control Panel with Regional setting,chage type of calendar(julian|gregorian) :surprised
How about something like this

private void DateSubmit_Click(object sender, System.EventArgs e)
		{
			DateTime date1, date2;
			bool date1OK, date2OK;
			date1 = new DateTime(1,1,1);
			date2 = new DateTime(1,1,1);
			try
			{
				date1 = Convert.ToDateTime(Date1.Text);
				date1OK=true;
			}
			catch
			{
				date1OK = false;
			}
			try
			{
				date2 = Convert.ToDateTime(Date2.Text);
				date2OK=true;
			}
			catch
			{
				date2OK = false;
			}
			if(date1OK && date2OK)
			{
				if(date1.CompareTo(date2) > -1)lblResult.Text = "Date2 must be after Date1";
				else
				{
					//do whatever here
				}
			}
			else lblResult.Text = "Invalid date format. Please check your input in the Date1 and Date2 fields";
		}
capitanu2k5
Newbie Poster
1 post since May 2005
Reputation Points: 10
Solved Threads: 0
 

Thats not good programming and performance!
NEVER use try catch as validation! IT is huge performance overhead.
What is wrong with DateTime.TryParse????

f1 fan
Posting Whiz in Training
279 posts since Jan 2006
Reputation Points: 26
Solved Threads: 11
 

1) DateTime.TryParse is only available in 2.0
2) I believe that if you dig into the specs for TryParse, at it's root it is a try/catch block anyway

campkev
Posting Pro in Training
484 posts since Jul 2005
Reputation Points: 14
Solved Threads: 19
 

Ahhh my bad. Been using 2.0 for too long i guess :)
I still dont recommend a try catch (and am going to look into the tryparse as it is expensive to use try catchs.

In that case write a simple utility (I have them for integers, decimal etc) that uses regular expressions to validate the date
Regx.ValidationExpression=@"^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])
|([1-31]))\/((\d{2})|(\d{4}))$";

if it is a match then it is a date and so can perform quickly the day is valid for the month. It will still be a lot quicker than try catch blocks

f1 fan
Posting Whiz in Training
279 posts since Jan 2006
Reputation Points: 26
Solved Threads: 11
 

oops i didnt realize they wanted it in dd/mm format not mm/dd format... just flick round the regex parts for days and months

f1 fan
Posting Whiz in Training
279 posts since Jan 2006
Reputation Points: 26
Solved Threads: 11
 

Dear Frd,

Just try

dd/mm/yyyy Format In regular Expression (optional mm,optional dd)
([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]([1-9]|0[1-9]|1[012])[- /.][0-9]{4}$


mm/dd/yyyy (optional mm,optional dd)
^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.][0-9]{4}$

mm/dd/yyyy (Exact Format)
^([01]\d)/([0-3]\d)/(\d{4})$

Regular Expression in ASP.net

ASP.net Discussion

ketanbece
Newbie Poster
3 posts since Oct 2008
Reputation Points: 10
Solved Threads: 0
 

You can use any culture that supports the dd-mm-yy format like the french one, for example to format the date time now in a format dd-mm-yy i can do as follow:

cultureInfo culture = new cultureinfo("fr-FR");
string oFormatedDate = dtNow.ToString("d", culture);

but the Ketanbece solution is better even it uses the regluar expressions

Jugortha
Junior Poster
172 posts since Oct 2007
Reputation Points: 11
Solved Threads: 16
 

if you need the date string only in dd/mm/yyyy format not dd.mm.yyyy or dd-mm-yyyy this Reguler Expression Validator can be helpfull

surhere
Newbie Poster
1 post since Aug 2009
Reputation Points: 10
Solved Threads: 0
 

First use regular Expression then write this ^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$ in validation Expression property.Dont forget to write d name of textbox in

mmadhu
Newbie Poster
1 post since Feb 2010
Reputation Points: 10
Solved Threads: 0
 

can anybody tell what DateTime(1,1,1) means??

shahidsachin
Newbie Poster
1 post since Feb 2010
Reputation Points: 10
Solved Threads: 0
 

dd/mm/yyyy Format In regular Expression (optional mm,optional dd)
([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]([1-9]|0[1-9]|1[012])[- /.][0-9]{4}$


mm/dd/yyyy (optional mm,optional dd)
^([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.][0-9]{4}$

mm/dd/yyyy (Exact Format)
^([01]\d)/([0-3]\d)/(\d{4})$

eka fatma yanti
Newbie Poster
1 post since Sep 2010
Reputation Points: 10
Solved Threads: 0
 

DateTime dt = DateTime.Now;
TextBox1.Text = dt.ToString("dd/MM/yyyy");
//try this code

amitesh kaushik
Newbie Poster
2 posts since Sep 2010
Reputation Points: 10
Solved Threads: 0
 
DateTime dt = DateTime.Now; TextBox1.Text = dt.ToString("dd/MM/yyyy"); //try this code



To display Date Format as:"Sunday,12 September 2010"
You Can Use follwoing code:-
DateTime dt = DateTime.Now;
TextBox1.Text = dt.ToString("dddd,dd MMMM yyyy");

amitesh kaushik
Newbie Poster
2 posts since Sep 2010
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You