Change Date into Month Name and Date with Year in C# - c#

I want to convert the date into something different. I give input date, it will convert into that format.
My code
var dt = erd.StartDate.Value.ToShortDateString();
var format = String.Format("{MMM/D/yyyy}", dt);
Here it is showing an error like input string is not correct format.
Help me to find out the issue?

Simply rewrite it like this (I'm assuming the erd.StartDate.Value datatype is datetime)
string result = erd.StartDate.Value.ToString("MMM/dd/yyyy");
or using "D" is equivalent to "dddd, MMMM d, yyyy"
string result = erd.StartDate.Value.ToString("D");

you need to use small d for representing Date.
you should not convert the Date into String before applying the custom Format.
Try This:
var dt = erd.StartDate.Value;
var format =dt.ToString("MMM/d/yyyy");

To solve your error, try the below code:
var dt = erd.StartDate.Value;
var format = String.Format("{0:MMMM/dd/yyyy}", dt);
You need to specify the parameter index to use. In the above code, we are telling String.Format to use parameter 0 to be formatted as a DateTime.
DateTime formatting has many types. Please see here for the different things you can do.

Related

Format String Value As MM/dd/YYYY

I am querying SharePoint and my dates are returned as YYYY-MM-dd 16:27:12 - for display only I tried to modify the syntax to be
string dateInfo = xNode.Attributes[“Altered”].Value;
sb.Append(String.Format(“{0:MM/dd/yyyy}”, dateInfo));
However that is not formatting the date time. What do i need to change so that the date/time is returned in my required format?
My desired format is mm/dd/yyyy 4:27:12 12 hour format so
You have to parse it to DateTime first:
string dateInfo = xNode.Attributes["Altered"].Value;
DateTime dt = DateTime.Parse(dateInfo);
sb.Append(String.Format("{0:MM/dd/yyyy}", dt));
Try, like:
var result = DateTime.Parse(dateInfo).ToString("MM/dd/yyyy");

Figuring out correct DateTime format in C#

I need to figure out how to get the 'when' variable in the right datetime format.
Its value is in: MM/yyyy format.
rt.Add(new RoadTrip()
{
Id = int.Parse(rec[0]),
Where = rec[1],
How = int.Parse(rec[2]),
When = DateTime.Parse(rec[3]),
WithWhat = rec[4]
});
You'll want to use DateTime.ParseExact to specify the format of the string that you want to parse to a date.
In your case it will probably use something like:
When = DateTime.ParseExact(rec[3], "MM/yyyy", CultureInfo.InvariantCulture)
It sounds like you need to use DateTime.ParseExact
When = DateTime.ParseExact(rec[3], "MM/yyyy", CultureInfo.InvariantCulture),
For a value of "10/2015" you will get a DateTime object with the value "10/1/2015 12;00:00 AM". Note that this will also throw a FormatException if the value does not match the format.

Date time format in C#

i have a string like "14-Nov-2014" , i want to convert this string to this 14.11.2014 format.
after converting i want to add 14 days to above date.
given date is not Datetime format.
Old date="14-Nov-2014"
new date=14.11.2014
is there any way to do in c#?
Assuming,
var myString = "14-Nov-2014";
First parse the string, most likely using DateTime.ParseExact. Assuming a few things about the format you have, you could do the following. Note you most likely should specify the proper culture for the third argument:
var dateTime = DateTime.ParseExact(myString, "dd-MMM-yyyy", null);
Then you can add 14 days to it easily:
var dateTime = dateTime.AddDays(14);
To get a new string in a different format just use ToString with a format string. For example:
var myNewString = dateTime.ToString("d.MM.yyyy");

C# Datetime format conversion

I have a conversion problem with datetime. I have a date string as MM/dd/yyyy. Now I need to convert it to yyyy-MM-dd.
But I'm facing some error. Please help
public static DateTime ToDBDateTime(string _dateTime)
{
string sysFormat = "MM/dd/yyyy hh:mm:ss tt";
string _convertedDate = string.Empty;
if (_dateTime != null || _dateTime != string.Empty)
{
_convertedDate = DateTime.ParseExact(_dateTime, sysFormat, System.Globalization.CultureInfo.InvariantCulture).ToString(_toDBDateFormat);
//_convertedDate = Convert.ToDateTime(_dateTime).ToString(_toDBDateFormat);
/// Debug.Print(sysFormat);
}
return Convert.ToDateTime(_convertedDate);
}
And I want to know that is there is any way to pass the datetime in various formats and it would return the expected format.
E.g.: if I pass date as dd/MM/yyyy or MM/dd/yyyy, the above function would return the date in format as yyyy-MM-dd.
Please provide some suggestion to solve datetime issues.
I have a date string as MM/dd/yyyy
Right... and yet you're trying to parse it like this:
string sysFormat = "MM/dd/yyyy hh:mm:ss tt";
...
_convertedDate = DateTime.ParseExact(_dateTime, sysFormat,
CultureInfo.InvariantCulture)
You need to give a format string which matches your input - so why are you including a time part? You probably just want:
string sysFormat = "MM/dd/yyyy";
However, that's not the end of the problems. You're then converting that DateTime back into a string like this:
.ToString(_toDBDateFormat)
... and parsing it once more:
return Convert.ToDateTime(_convertedDate);
Why on earth would you want to do that? You should avoid string conversions as far as possible. Aside from anything else, what's to say that _toDBDateFormat (a variable name which raises my suspicions to start with) and Convert.ToDateTime (which always uses the current culture for parsing) are going to be compatible?
You should:
Work out how you want to handle being given an empty string or null, and just return an appropriate DateTime then
Otherwise, just parse using the right format.
This part of your question also concerns me:
E.g.: if I pass date as dd/MM/yyyy or MM/dd/yyyy, the above function would return the date in format as yyyy-MM-dd.
There's no such thing as "the date in format as yyyy-MM-dd". A DateTime is just a date and time value. It has no intrinsic format. You specify how you want to format it when you format it. However, if you're using the value for a database query, you shouldn't be converting it into a string again anyway - you should be using parameterized SQL, and just providing it as a DateTime.
As you have a date in a string with the format "MM/dd/yyyy" and want to convert it to "yyyy-MM-dd" you could do like this:
DateTime dt = DateTime.ParseExact(dateString, "MM/dd/yyyy", CultureInfo.InvariantCulture);
dt.ToString("yyyy-MM-dd");
Use the inbuilt tostring like this:
Convert.ToDateTime(_convertedDate).ToString("MM/dd/yyyy") or whatever format you want.
I tried this and its working fine.
DateTime date1 = new DateTime(2009, 8, 1);
date1.ToString("yyyy-MM-dd hh:mm:ss tt");
You can apply any format in this ToString.
Hope that helps
Milind

how to give format DateTime.Date?

DateTime dt = DateTime.Now
dt.Date is created to 31.10.2012 00:00:00 .it is created to dd.mm.yyyy format but i need dd/mm/yyyy. Can i use: return new DateTime(d.Year, d.Month, d.Day, 0, 0, 0); it will create to me dd/mm/yyyy solution?Please dont translate String.i need datetime...
The DateTime struct doesn't store any formatting information internally. If you want to output the DateTime instance as a formatted string, you just need to call ToString() with the proper format string:
var date = DateTime.Now;
var formattedString = date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
If you need more information on exactly which specifiers to use in your format string, check out:
MSDN - Custom Date and Time Format Strings
Just the way to convert to string, DateTime itself has no format:
var result = DateTime.Now.Date
.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
var dt = DateTime.Now;
var stringDt = dt.Date.ToString("dd/MM/yyyy");
In you case you can simply use :
dt.ToString("dd/MM/yyyy");
Anyway there al the string format you can use with DateTime : Here.
System.DateTime does not have any format. You can view its string representation in format.
Try this
Console.WriteLine(DateTime.Now.Date.ToString("dd'/'MM'/'yyyy"));
DateTime, numeric types and most other types do not store their values in a formatted way. Rather they store their data using a binary representation. If you want to display this data to the user, you must convert it to a string. This conversion involves formatting the data.
string formattedDate = DateTime.Now.ToString("dd/MM/yyyy",
CultureInfo.InvariantCulture);
Or
Console.WriteLine("Date = {0:dd/MM/yyyy}", DateTime.Now);
Console.WriteLine converts the date into a string in order to write it to the console.
DateTime structure always has the Date and Time stored in it. If you need to extract the date alone as text you can do the following.
var date = DateTime.Now.ToString("d");
Console.WriteLine(date);
This will print the date as in the format as specified by the culture set in the system. The list of standard datetime format strings supported by dotnet framework can be found here

Categories