Convert datetime to date using c# - c#

I have datetime like:
01-Jan-10 12:00:00 AM I want to get only 01-Jan-10.I do not know how to convert it. Anyone know help me please, Thanks,

If you have a DateTime object and want to get the string in that format, use myDateTime.ToString("dd-MMM-yy"). If you have a DateTime object and want to return a new DateTime object that is just the date component, use DateTime.Date.

Like this:
DateTime dt = DateTime.Today; //or whatever
string dateString = dt.ToShortDateString();
You can also use ToString() to format it however you like. In your case, it would be:
string dateString = dt.ToString("dd-MMM-YY");

use method DateTime.ToShortDateString(); or DateTime.ToLongDateString()

Related

DateTime.Parse Not Parsing

I'm trying to return the date as "2015-06-18"
string strDate = DateTime.Now.ToString("yyyy-MM-dd");
DateTime newDate = DateTime.Parse(strDate);
This returns "2015/06/18 hh:mm:ss"
What am I missing?
If you want a particular output format, you can specify one yourself.
string strDate = DateTime.Now.ToString("yyyy-MM-dd");
DateTime newDate = DateTime.Parse(strDate);
string output = newDate.ToString("yyyy-MM-dd");
Console.WriteLine (output); // produces 2015-06-18 right now
The DateTime structure in .net always includes the time of day, and there is no built-in way to store only a date, so if you want to exclude it, you'll need to use the formatting options.
What you need is to format the datetime object.
newDate.ToString("yyyy-MM-dd") -> 2015-06-19
Why don't you just use the DateTime.Date property?
DateTime date1 = DateTime.Now;
Console.WriteLine(date1.ToString());
// Get date-only portion of date, without its time.
DateTime dateOnly = date1.Date;
// Display date using short date string.
Console.WriteLine(dateOnly.ToString("yyyy-MM-dd"));

Convert date time to string and back to date time

I'm having a troubles with converting strings to DateTime. Here is what I have. First I convert current date to string (this will be folder name).
string dateString = string.Format("{0:yyyy-MM-dd_HH-mm-ss}", DateTime.Now);
Output like this
2013-05-16_09-32-47
Then I create a folder. During program execution I get this folder and I need to convert it's name back to DateTime. Try to make it like this
DateTime directoreDate = DateTime.ParseExact(directory.Name, "0:yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture);
But it throws FormatException. Can anybody tell me why this happening.
You are using the same composite format string that you used to format the original DateTime. This is not needed for ParseExact - drop the 0: from it:
DateTime directoreDate = DateTime.ParseExact(directory.Name,
"yyyy-MM-dd_HH-mm-ss",
CultureInfo.InvariantCulture);
Use
DateTime directoreDate = DateTime.ParseExact(directory.Name, "yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture);
Remove 0: from DateTime.ParseExact, It was used as a place holder in string.Format().
Use as :
DateTime directoreDate = DateTime.ParseExact(directory.Name,
"yyyy-MM-dd_HH-mm-ss",
CultureInfo.InvariantCulture);

how to convert date with 'T' to/from string in C#

I used following functions to convert DateTime from/into string:
DATE_OBJ.ToString(DATE_FORMAT);
DateTime.ParseExact(Date_string, DATE_FORMAT, null);
Now I've got to work with follow format 2012-03-20T14:18:25.000+04:00
Which format should I use to convert it correctly to string and generate string like that from DateTime object?
You can go from DateTime to that format with
DateTime dt = new DateTime();
dt.ToString("o");
and from that format to DateTime with
DateTimeOffset.Parse(dateString);
Here is some more info on DateTime format:
http://www.dotnetperls.com/datetime-format
You are better of using DateTimeOffSet like:
string str = " 2012-03-20T14:18:25.000+04:00";
DateTimeOffset dto = DateTimeOffset.Parse(str);
//Get the date object from the string.
DateTime dtObject = dto.DateTime;
//Convert the DateTimeOffSet to string.
string newVal = dto.ToString("o");
You cannot do this from DateTime, as DateTime holds no TimeZone info.
This is close: string.Format("{0:s}", dt) will give 2012-03-20T14:18:25.
See: http://www.csharp-examples.net/string-format-datetime/
You could extend this to: string.Format("{0:s}.{0:fff}", dt), which will give 2012-03-20T14:18:25.000
But you better have a look at DateTimeOffset: DateTime vs DateTimeOffset
(Not advisable, but to fake it and still use DateTime: string.Format("{0:s}.{0:fff}+04:00", dt))
If that is a string you receive then you can split the string by T and use only the first part which is the Date component of the whole string and parse that.
ex:
string dateTimeAsString = "2012-03-20T14:18:25.000+04:00";
string dateComponent = dateTimeAsString.Splic('T')[0];
DateTime date = DateTime.ParseExact(dateComponent, "yyyy-MM-dd",null);

C# date AddDays output

I have following code:
string date = "13.04.2012";
string date2 = (DateTime.Parse(date).AddDays(1)).ToString();
This is working correctly without a problem but after the DateTime.Parse function the variable date2 is '14.04.2012 00:00:00' but i would like to have only the date '14.04.2012' without the timestamp.
I thought about using the substring function like this:
string sub = date2.Substring(0, 10);
That would work like this but isn't there a better way to get that result?
try this
string date = "13.04.2012";
string date2 = (DateTime.Parse(date).AddDays(1)).ToShortDateString();
DateTime.Parse returns a DateTime value, which is not really a string so it's wrong to say that it has the value '14.04.2012 00:00:00'.
What you need to do here is add a format parameter to the ToString call, or use one of the convenience formatting methods.
DateTime.ToString(string format)
Try DateTime.Date property. May be it will be correct for this. See the below code part
DateTime dateOnly = date1.Date;
and out put will be
// 6/1/2008
EDIT:
or simply you can try
DateTime.ToString("dd.MM.yyyy");
I think you are after formatting
System.DateTime now = System.DateTime.Now;
System.DateTime newDate = now.AddDays(36);
System.Console.WriteLine("{0:dd.mm.yyyy}", newDate);

How to get today's date in mm/dd/yyyy format into a datetime variable in c#

I want today's date in mm/dd/yyyy format from a DateTime variable. How to get it?
I need to check this with some date variable so it must be also in date variable format?plz help
Ex: i need to get today date in mm/dd/yyyy format and i already date which is datetime datatype in mm/dd/yyyy format and i have to compare them
You should use DateTime.Today:
DateTime today = DateTime.Today; // As DateTime
string s_today = today.ToString("MM/dd/yyyy"); // As String
Edit: You edited your post to add another question, so here comes my edit to supply at least some sort of answer.
Update While you can use DateTime.Compare() you should use plain comparisson:
if(today < otherdate)
{
// Do something.
}
Alternatively, you can use DateTime-variables to check against other DateTime-variables using the DateTime.Compare() method. Both otpions will work and it comes down to preference and what you want to do with the result.
int result = DateTime.Compare(today, otherdate);
if(result < 0)
MessageBox.Show("Today is earlier than the 'otherdate'");
elseif(result > 0)
MessageBox.Show("Today is later than the 'other date'");
else
MessageBox.Show("Dates are equal...");
string datestring = DateTime.Now.ToString("MM/dd/yyyy");
MSDN say: Custom Date and Time Format Strings
To convert DateTime variable to string in the specified format:
DateTime d = ...;
string s = d.ToString("MM/dd/yyyy");
If you want to compare only date part of DateTime, not time part:
DateTime d1 = DateTime.Parse("10/10/2011");
DateTime d2 = DateTime.Parse("01/01/2011");
if (d1.Date > d2.Date)
{
// do the stuff
}
DateTime.Now.ToString("MM/dd/yyyy");
DateTime.Today.ToString("MM/dd/yyyy");
DateTime.Parse is what you are looking for...

Categories