how to convert mm/dd/yyyy format to dd/mm/yyyy in c#
You need to change the string format slightly as the string you're using is not valid. Change hh
to h
:
DateTime dt = DateTime.ParseExact(data.updatedDate.ToString(), "MM/dd/yyyy h:mm:ss tt",CultureInfo.InvariantCulture);
If you're passing a string that can have single digit for month or day then you should use the following:
"M/d/yyyy h:mm:ss tt"
If it always has 2 digit for month and date then you can use:
"MM/dd/yyyy h:mm:ss tt"
hh
means use 2 digits for the hour, h
means use one (where possible). You're also setting tt
which displays AM/PM
which could be causing the issue when used with hh
.
EDIT: (From your comments) If updatedDate
is a DateTime
object then you can just do:
var time = updatedDate.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Convert dd/mm/yyyy string to yyyy-dd-mm DateTime in c#
string dateTime = "13/05/2019";
var splittedDateTime = dateTime.Split('/');
DateTime myDate = new DateTime(int.Parse(splittedDateTime[2]), int.Parse(splittedDateTime[1]), int.Parse(splittedDateTime[0]));
Converting dd/mm/yyyy formatted string to Datetime
You need to use DateTime.ParseExact
with format "dd/MM/yyyy"
DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);
Its safer if you use d/M/yyyy
for the format, since that will handle both single digit and double digits day/month. But that really depends if you are expecting single/double digit values.
Your date format day/Month/Year
might be an acceptable date format for some cultures. For example for Canadian Culture en-CA
DateTime.Parse
would work like:
DateTime dt = DateTime.Parse("24/01/2013", new CultureInfo("en-CA"));
Or
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA");
DateTime dt = DateTime.Parse("24/01/2013"); //uses the current Thread's culture
Both the above lines would work because the the string's format is acceptable for en-CA
culture. Since you are not supplying any culture to your DateTime.Parse
call, your current culture is used for parsing which doesn't support the date format. Read more about it at DateTime.Parse.
Another method for parsing is using DateTime.TryParseExact
DateTime dt;
if (DateTime.TryParseExact("24/01/2013",
"d/M/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
//valid date
}
else
{
//invalid date
}
The TryParse
group of methods in .Net framework doesn't throw exception on invalid values, instead they return a bool
value indicating success or failure in parsing.
Notice that I have used single d
and M
for day and month respectively. Single d
and M
works for both single/double digits day and month. So for the format d/M/yyyy
valid values could be:
- "24/01/2013"
- "24/1/2013"
- "4/12/2013" //4 December 2013
- "04/12/2013"
For further reading you should see: Custom Date and Time Format Strings
How to convert dd/mm/yyyy string into JavaScript Date object?
MM/DD/YYYY formatIf you have the MM/DD/YYYY
format which is default for JavaScript, you can simply pass your string to Date(string)
constructor. It will parse it for you.
var dateString = "10/23/2015"; // Oct 23
var dateObject = new Date(dateString);
document.body.innerHTML = dateObject.toString();
convert datetime to date format dd/mm/yyyy
DateTime dt = DateTime.ParseExact(yourObject.ToString(), "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
string s = dt.ToString("dd/M/yyyy", CultureInfo.InvariantCulture);
Format date-string from datagridview to dd/MM/yyyy in C#
You should convert to a datetime the property Value of your DataGridViewRow. This is typed as an object so you need a conversion. At that point you can use the overload of ToString available for the DateTime type that accepts the output format required.
For clarity I put the code in separate lines.
DateTime dt = Convert.ToDateTime(dataGridView1.Rows[i].Cells["Date"].Value);
string toOutput = dt.ToString("dd/MM/yyyy");
e.Graphics.DrawString(toOuput, new Font("Arial", 10, FontStyle.Regular), Brushes.Black, x, 140 + height);
java.util.Date format conversion yyyy-mm-dd to mm-dd-yyyy
Date
is a container for the number of milliseconds since the Unix epoch ( 00:00:00 UTC on 1 January 1970).
It has no concept of format.
Java 8+LocalDateTime ldt = LocalDateTime.now();
System.out.println(DateTimeFormatter.ofPattern("MM-dd-yyyy", Locale.ENGLISH).format(ldt));
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH).format(ldt));
System.out.println(ldt);
Outputs...
05-11-2018
2018-05-11
2018-05-11T17:24:42.980
Java 7-You should be making use of the ThreeTen Backport
Original AnswerFor example...
Date myDate = new Date();
System.out.println(myDate);
System.out.println(new SimpleDateFormat("MM-dd-yyyy").format(myDate));
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(myDate));
System.out.println(myDate);
Outputs...
Wed Aug 28 16:20:39 EST 2013
08-28-2013
2013-08-28
Wed Aug 28 16:20:39 EST 2013
None of the formatting has changed the underlying Date
value. This is the purpose of the DateFormatter
s
Updated with additional example
Just in case the first example didn't make sense...
This example uses two formatters to format the same date. I then use these same formatters to parse the String
values back to Date
s. The resulting parse does not alter the way Date
reports it's value.
Date#toString
is just a dump of it's contents. You can't change this, but you can format the Date
object any way you like
try {
Date myDate = new Date();
System.out.println(myDate);
SimpleDateFormat mdyFormat = new SimpleDateFormat("MM-dd-yyyy");
SimpleDateFormat dmyFormat = new SimpleDateFormat("yyyy-MM-dd");
// Format the date to Strings
String mdy = mdyFormat.format(myDate);
String dmy = dmyFormat.format(myDate);
// Results...
System.out.println(mdy);
System.out.println(dmy);
// Parse the Strings back to dates
// Note, the formats don't "stick" with the Date value
System.out.println(mdyFormat.parse(mdy));
System.out.println(dmyFormat.parse(dmy));
} catch (ParseException exp) {
exp.printStackTrace();
}
Which outputs...
Wed Aug 28 16:24:54 EST 2013
08-28-2013
2013-08-28
Wed Aug 28 00:00:00 EST 2013
Wed Aug 28 00:00:00 EST 2013
Also, be careful of the format patterns. Take a closer look at SimpleDateFormat
to make sure you're not using the wrong patterns ;)
Related Topics
Post Byte Array to Web API Server Using Httpclient
How to Iterate Through the Following Json Using C#
Using Linq to Remove Elements from a List<T>
How to Loop Through Each and Every Row, Put Value in Gridview Column Cells
Linq Multiple Group by in a List<T> Then Convert to List<T>
How to Get the Currently Loggedin Windows Account from an ASP.NET Page
Why Am I Getting Error Cs0246: the Type or Namespace Name Could Not Be Found
How to Refresh an Entity Framework Core Dbcontext
Using Linq to Groupby and Sum Datatable
How to Validate a Datetime in C#
Decrypt M3U8 Playlist Encrypted With Aes-128 Without Iv
Count() a Specfic Attribute Within a List C#
How to Download File With ASP.NET on Buttton'S Onclick Event
In C# What Is the Default Value of the Bytes When Creating a New Byte Array
How to Convert a String Containing Am/Pm to Datetime
C# SQL Server Stored Procedure Parameter Return List
Thread.Sleep() Without Freezing the Ui
How to Write Data on Multiple Lines But Within the Same Cell of Csv