datetime value in database - c#

I updated the datetime to the datebase. It's 5/2/2012. But when I want to show this value from that database into a textbox it will show me : 05/02/2012.
Please help me to solve this problem. I want to show it's value into the textbox like the format has been updated : 5/2/2010
Thanks in advance

If you have the data as a DateTime object, then you can format its output using its ToString(string) overload with the format string "d/M/yyyy" or any other format as described here: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

SELECT CAST(DATEPART(MM,GETDATE()) AS VARCHAR(2))+'/'
+CAST(DATEPART(DD,GETDATE()) AS VARCHAR(2))+'/'
+CAST(DATEPART(YYYY,GETDATE()) AS VARCHAR(4))

Try this :
Textbox1.Text=datevalue.ToString("MM/dd/yyyy");

Try this ToString("d/M/yyyy") to give desired format.
If you can show me your code then I can help you more.

You can use ToString("MM/dd/yyyy") while assigning the value.
If your textbox is Textbox1 and your date value is stored in DateTime object datevalue then you should do it like this.
Textbox1.Text=datevalue.ToString("MM/dd/yyyy");

When you store this data into sql server as datetime type then the original format is lost. However, if you want to show the data without leading 0's then you can do this for your textbox.
mytextbox.Text = dt.Month.ToString().TrimStart('0') + "/" + dt.Day.ToString().TrimStart('0') + "/" + dt.Year.ToString()

It's generally poor practice to go mucking with your data with a complex query or pre-format the data before reaching your application as you lose flexibility with the results.
The data coming from SQL is properly formatted as a generic DateTime stamp - allow the application to massage it for display purposes, as #Chris-Sinclair suggests with the link to examples.
The best aproach, if using WPF, is to allow the UI element to format the text as it sees fit, that way the content of your class instances remains unmodified. It's still a DateTime object so you can do DateTime "math" or other manupiations without losing the full value.
Here is an example from elegantcode.com where the WPF UI element determines it's format:
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy hh:mm tt}}" />
For your speficif purpose the correct line would read
<TextBlock Text="{Binding Date, StringFormat={}{0:M/d/yyyy hh:mm tt}}" />

For doing that the best way is saving datetime into the database as a string. then after retrieving the string I can convert that to datetime. and it will show the correct format.

Related

How to extract date from datetime in C# without converting it into string?

I am trying to extract date from date time field but in C# it is not helping me to do it without converting it to string.
This is my class:
public class Student_Info
{
public String Student_Name;
public DateTime DateofBirth;
}
Student_Info student = new Student_Info();
student.Student_Name = "XYZ";
student.DateofBirth = Convert.ToDateTime("2019-01-01");
MessageBox.Show(student.Student_Name + "" + student.DateofBirth);
This is how I am setting the value.
My expected result is XYZ 2019-01-01
But I am getting XYZ 1/1/2019 12:00:00 AM
Need Help?
Thanks in Advance
The DateTime struct always has a time component. There is a Date property that will mostly do what you asked, but even that has an implied time of midnight.
However, while the question text says this:
without converting it into string?
the code sample IS implicitly converting to a string:
MessageBox.Show(student.Student_Name + "" + student.DateofBirth);
In which case there are a number of options:
student.DateofBirth.ToShortDateString()
student.DateofBirth.ToString("d")
student.DateofBirth.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")) //German format. You can put any culture here you need.
student.DateofBirth.ToString("d", CultureInfo.InvariantCulture)
student.DateofBrith.ToString("yyyy-MM-dd")
Just be careful here, because some of those rely on the operating system's date format, and users can configure that to do really weird stuff if they really want to.
You can also use any of these right in the MessageBox string:
MessageBox.Show($"{student.Student_Name}{student.DateofBirth:yyyy-MM-dd}");
MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "{0}{1:d}", student.Student_Name, student.DateofBirth));
Finally, I get a little scared whenever I see someone wanting to create a date string resembling the ISO-8601 date format, as is the case here. There are plenty of legitimate reasons to do this. However, there is one common reason people want to do this that also happens to be very bad: SQL. If you're doing this so you can include it in an SQL command string, you're almost certainly doing something very wrong, and you need to take a step back and research parameterized queries before doing anything else.
Try this
MessageBox.Show(student.Student_Name + "" + student.DateofBirth.ToString("yyyy-MM-dd"));

get the format of a string date in c#

I have a string date like 'Wednesday, May 15, 2013' when I Parse it o lost the original format, is there a way to know what was the original format date or get it before the final Parse?
No, you'll lose the original format, if will now be a different object type with no care for its original format prior to parsing.
Your best option would be to store the pre-parse format prior to parsing as a different variable.
However if you simply wish to format the date in that original format, see Farhad's answer.
You can use this for getting date in a fromat you wish.
String.Format("{0:D}", DateTime.Now); // Tuseday, May 21, 2013
The DateTime struct does not have a format, it stores all of those values on various properties. When you want to display it you specify which format to use.
Using a format specifier when displaying it will likely do what you want. This mdsn article provides some basic information on format specifiers. The only way you can use the exact format you show there is if you know it ahead of time and have a format specifier for it. If you know you'll want to display strings in that format throughout the program it will be easy, if you get many different formats and want to decide how to display your dt at runtime it will be fairly complicated. I'm sure you could write some code to figure out what it is, but once the DateTime is created it will have no notion of what format the string used to create it was in.

Datetime formats and JSON data in C#

I'm having an issue with date/time formats in ASP.NET/C#. I have my SQL Server database set up with a PostDate field set to a type of "datetime". But it's saving the date in a strange format. I added a new row through a form and I got this as the date/time string:
2012-09-28 14:56:48.910
When it gets parsed by JSON.NET it gets even stranger. I get:
2012-09-28T14:56:48.91
The date and time are obviously correct, but how do I set things so that I can parse the date into a human-friendly way? There isn't really any code to post because the date is being added when the row is inserted. I'd like to format this as "Sept. 28, 2012 2:56 pm". How do I do that? Do I need to format the string before or after it's parsed as JSON?
That's not a "strange" format at all. The second form is ISO-8601; the first is ISO-8601 without the T. Considering the strange formats you can get in JSON, it looks like you've been let off pretty lightly!
Serialization formats aren't meant to be user-friendly, particularly - they're meant to be machine-to-machine formats.
I would hope that JSON.NET would give you a DateTime after parsing; it should only be giving you the ISO-8601 format after you've converted back to JSON.
If you've got a DateTime that you want to format for user consumption, there are all kinds of options with standard and custom format strings. Don't forget that you should respect the culture of the user, as far as possible - so make sure you're taking appropriate steps to either set the thread's current culture to be the user's one, or that you're passing the culture explicitly to DateTime.ToString etc.
You can try it in C#:
.ToString("MMM d yyyy, h:mm tt")

Retrieve format of date from date value

I am receiving some data into a variable of type object. In certain cases this data are date values. For that data, I would like to convert this to a string and return it in the same format as it was passed. In some cases, the object could be a datetime, in others a date only or time only values.
As soon as I convert the object to a date or a string, it is obviously given a time of midnight which in my scenario may be a valid time (so I cannot test to see if the time is midnight in which case I could deduce that it would have been a date only date value, nor can I use regex on it as there will always be a time element).
Intellisense shows me it correctly, ie in the format I am wishing to return the value.
Is there an easy way to achieve this (hopefully without using reflection)
Many thx
Simon
Your question is a little unclear but I think you're looking for something like this:
DateTime result;
if (DateTime.TryParse(value, out result))
{
// use result here
}
In the above code value is a string that represents the data coming in. The code will only enter the if block if the string is a valid DateTime. At which point you can do the processing you need on it.
Im not sure i understand the question but i would recommend you to take a look at this conversion example on MSDN, and see the Documentation of the DateTime Structur it contains a lot of Conversion/Formatting Methods i hope it helps.
There are many way to do formatting on the datetime and one of the simple way is fetch the data from the required table in the desired format. Like here you need to display the date and if you your format is dd/MM/yyyy then try this
select Convert(varchar(10),StartDate,103) as StartDateformat from table where filtername=#filtername
use this link to find other format Cast and Convert
From local variable to DateTime Conversion
DateTime todateformat = Convert.ToDateTime(txttodate.Text.Trim());
From DateTime to local variable Conversion in specific format
string startdate = todateformat.ToString("dd/MM/yyyy hh:mm:ss");

How to Convert date into MM/DD/YY format in C#

In My Asp.net webpage I need to display today's date into one of the textbox , so in my form load I wrote the following code
textbox1.text = System.DateTime.Today.ToShortDateString();
this line is giving me date like 1/7/09 but I want date like 01/07/09 , Is there anyway I can conver this date into mm/dd/yy format in C#?
DateTime.Today.ToString("MM/dd/yy")
Look at the docs for custom date and time format strings for more info.
(Oh, and I hope this app isn't destined for other cultures. That format could really confuse a lot of people... I've never understood the whole month/day/year thing, to be honest. It just seems weird to go "middle/low/high" in terms of scale like that.)
DateTime.Today.ToString("MM/dd/yy")
Look at the docs for custom date and time format strings for more info.
(Oh, and I hope this app isn't destined for other cultures. That format could really confuse a lot of people... I've never understood the whole month/day/year thing, to be honest. It just seems weird to go "middle/low/high" in terms of scale like that.)
Others cultures really are a problem. For example, that code in portugues returns someting like 01-01-01 instead of 01/01/01. I also don't undestand why...
To resolve that problem i do someting like this:
IFormatProvider yyyymmddFormat = new System.Globalization.CultureInfo(String.Empty, false);
return date.ToString("MM/dd/yy", yyyymmddFormat);
Have you tried the following?:
textbox1.text = System.DateTime.Today.ToString("MM/dd/yy");
Be aware that 2 digit years could be bad in the future...
Look into using the ToString() method with a specified format.
See, here you can get only date by passing a format string.
You can get a different date format as per your requirement as given below for current date:
DateTime.Now.ToString("M/d/yyyy");
Result : "9/1/2016"
DateTime.Now.ToString("M-d-yyyy");
Result : "9-1-2016"
DateTime.Now.ToString("yyyy-MM-dd");
Result : "2016-09-01"
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
Result : "2016-09-01 09:20:10"
For more details take a look at MSDN reference for Custom Date and Time Format Strings

Categories

Resources