DateTime convert in c# - c#

I have DateTime variable in this format "dd/mm/yyyy hh:mm:ss".
I would like to convert this to "mm/dd/yyyy hh:mm:ss". (Month before day)
I tried to use DateTime.parse like this:
DateTime dt = new DateTime();
dt = dateTimePicker1.Value;
dt = DateTime.Parse(dt.ToString(), "mm/dd/yyyy", null);
but it wont work.
I also try it with DateTime.ParseExact() but still nothing happened.
Any suggestion?

A DateTime doesn't have any implicit format. It just has date and time values.
Formatting subject only applies when you try to get it's textual representation. If you wanna get string represetation of it, you can use .ToString() method like;
string s = dateTimePicker1.Value.ToString("MM/dd/yyyy hh:mm:ss",
CultureInfo.InvariantCulture);
And remember, mm specifier is for minutes, MM specifier is for months. Also hh specifier is for 12-hour clock and HH specifier is for 24-hour clock representations. You might wanna use HH instead.
I used InvariantCulture as a second parameter because / and : have special meaning as replace me current culture or supplied culture date or time separator.

string date = dateTimePicker1.Value.ToString("MM/dd/yyyy");

You can also use this below code for advance:
GregorianCalendar cal = new GregorianCalendar(); // or any type of calendar you want ...
string formatted = string.Format("{1:00}/{2:00}/{0} {3:00}:{4:00}:{5:00} ",
cal.GetYear(dt), cal.GetMonth(dt), cal.GetDayOfMonth(dt) , cal.GetHour(dt), cal.GetMinute(dt), cal.GetSecond(dt));

DateTime time = DateTime.Now;
string format = "MMM ddd d HH:mm yyyy";
Console.WriteLine(time.ToString(format));

Related

How to Change Time In PM Or AM in 24 Hour format

how to Change Time According to PM OR AM please help me this in C#
string time = "0610"; OR "1200" OR "0100" OR "1430"
DateTime dt = DateTime.Parse(time);
i Need like this : 06:10 AM
You want to use ParseExact to parse the string into a date/time:
string time = "0610";
DateTime dt = DateTime.ParseExact(time, "HHmm"", CultureInfo.InvariantCulture);
// HH means 24-hour format with leading zero
Note that DateTime does not HAVE a format, it just represents a point in time. If you then want to display it with the AM/PM indicator, you could use ToString, or set the format specifier in the display control (if applicable):
string timeAmPm = dt.ToString("hh:mm tt");
Try this
//date is your datetime
DateTime date = DateTime.Now;
string formatTime = date.ToString("hh:mm tt", CultureInfo.InvariantCulture);
Console.WriteLine(formatTime);
See more:
https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#ttSpecifier

String to DateTime in c#: 2018-05-10 10-AM

I would like to convert the String "2018-05-10 10-AM" to a DateTime-Object. I tried everything, including this (is throwing an Exception):
var date = DateTime.ParseExact("values[0]", "yyyy-MM-dd HH-tt",
System.Globalization.CultureInfo.InvariantCulture);
Anybody knows what I am doing wrong?
I think you should hh specifier instead of HH specifier since your hour part is 12-hour clock format, not 24-hour clock.
var date = DateTime.ParseExact("2018-05-10 10-AM", "yyyy-MM-dd hh-tt",
CultureInfo.InvariantCulture);
And also as David commented, you have a typo in your code. At least it should be like;
var date = DateTime.ParseExact(values[0], "yyyy-MM-dd hh-tt",
CultureInfo.InvariantCulture);
You can also use something like this:
var date = DateTime.ParseExact("2018-05-10 10-AM", #"yyyy-MM-dd hh-tt", new CultureInfo("en-US"));
and in your own example:
var date = DateTime.ParseExact(values[0], #"yyyy-MM-dd hh-tt", new CultureInfo("en-US"));
note that don't put variables in quotations.

How to get our own date time format in c#

In my application , i have a control which is displaying current time in HH:mm:ss format. My question is if format is HH mm ss then, how this format is converted back to HH:mm:ss format
ex
03-08-2016 10:30:45 ==> my required format
03-08-2016 10 30 45 ==> current format. or it may be any other format
How can i get required format?...
DateTime class has a .ToString() method which accepts format string as it's argument. Please have a look at this
You can get your required format as follows:
var now = DateTime.Now;
var formattedDate = now.ToString("dd-MM-yyyy HH mm ss");
Let the dateInput be the date time object, and the dateFormatString be the required format. then you can use the .ToString() method to get the formatted date string; This can be achieved by using the following code:
string dateFormatString="dd-MM-yyyy HH:mm:ss";
string formattedDateString = dateInput.ToString(dateFormatString);
Suppose your current date time format dd-MM-yyyy HH mm ss like 03-08-2016 10 30 45 then you can convert your current format to dd-MM-yyyy HH:mm:ss as follow
var dt = DateTime.ParseExact("03-08-2016 10 30 45", "dd-MM-yyyy HH mm ss", CultureInfo.InvariantCulture);
string newdate = dt.ToString("dd-MM-yyyy HH:mm:ss");
using same mechanism you can convert any format to another
Let's say you can get the string value from your control that displays in MM-dd-yyyy HH mm ss format, you can use DateTime.ParseExact Method to convert it back to a DateTime variable.
var datetime = DateTime.ParseExact(controlDT.Text, "MM-dd-yyyy HH mm ss", CultureInfo.InvariantCulture);
var newDateTimeString = datetime.ToString("MM-dd-yyyy HH:mm:ss");
Easy way around. Try this:
DateTime date = DateTime.Now;
string dt = date.ToString("dd-MM-yyyy HH:mm:ss");
The output produced will be (as per your required format):
03-08-2016 05:25:47
Convert like this:
var date= DateTime.Now;
var Yourrequeired= date.ToString("dd-MM-yyyy HH: mm: ss");

Getting an error while converting string to DateTime

I am trying to convert a string value into DateTime. It gives me an error as, specified string is not in correct format.
Here is the code,
DateTime myDate = DateTime.ParseExact("07-09-2013 01:14:14:1414", "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
string strDate = "07/09/2013 01:04:02:4";
Convert.ToDateTime(strDate);
DateTime dt = DateTime.Parse(strDate);
Please help in converting the same.
Thanks
Your format seems to be incorrect. Should be:
"dd-MM-yyyy HH:mm:ss:ffff"
Update. If number of digits representing fractions of a second varies, than the best bet is
"dd-MM-yyyy HH:mm:ss:FFFFFFF"
Refer to MSDN for other options for custom time and date formats.
Try in your page_load event:
Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("tr-TR")
Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("tr-TR")
First, you mixed you years place
07-09-2013 is dd-MM-yyyy format
second, you need a :ffff after seconds
So the final line should be
DateTime myDate = DateTime.ParseExact("2013-07-09 01:14:14:1414", "yyyy-MM-dd HH:mm:ss:ffff", System.Globalization.CultureInfo.InvariantCulture);
Your format isn't correct:
"07-09-2013 01:14:14:1414"
"yyyy-MM-dd HH:mm:ss"
Atleast your date is the other way around, and the milliseconds is not specified.
Correct you format according to this: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
For the downvoter:
The correct format is specified by Andrei: "dd-MM-yyyy HH:mm:ss:ffff"
First of all, you should change your date format to dd-MM-yyyy because it fits with your date format.
Second of all, for miliseconds part, you can use . instead of :
DateTime myDate = DateTime.ParseExact("07-09-2013 01:14:14.1414", "dd-MM-yyyy HH:mm:ss.ffff", System.Globalization.CultureInfo.InvariantCulture);
string strDate = "07/09/2013 01:04:02.4";
Convert.ToDateTime(strDate);
DateTime dt = DateTime.Parse(strDate);
Here a DEMO.
For more information, check Custom Date and Time Format Strings

Parsing datetime of the format "2013-Jan-31" throws error

I have a datetime column in database.
DateTime end_date = DateTime.ParseExact("2013-Jan-31", "yyyy-MM-dd", CultureInfo.InvariantCulture);
Why isn't this working?
This is not working because MM would mean January to be 01. If this is the format of the date you're trying to parse, try the format "yyyy-MMM-dd".
Hope this helps
Try like this;
DateTime a = DateTime.ParseExact("2013-Jan-31", "yyyy-MMM-dd", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine (a);
Output:
31.01.2013
Look at from MSDN Custom Date and Time Format Strings
To use such a name of the month you need to take "MMM" so it will be
myObject.end_date = DateTime.ParseExact("2013-Jan-31", "yyyy-MMM-dd", System.Globalization.CultureInfo.InvariantCulture);
MM represents a two-digit numerical month (such as "01").
MMM represents the abbreviated month (such as "Jan").
Which means that you need
myObject.end_date = DateTime.ParseExact("2013-Jan-31", "yyyy-MMM-dd", System.Globalization.CultureInfo.InvariantCulture);
See http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx for a list of string format specifiers.

Categories

Resources