Reputation: 1933
I have a datetime variable like this:
DateTime date1 = DateTime.Now; // has 9.4.2014 01:12:35
I want to assign this to another datetime or change its value like this:
2014-04-09 13:12:35
How can I do? Thanks.
EDIT : I don't want string variable. I want it Datetime format.
Upvotes: 0
Views: 2208
Reputation: 2167
As a guess, the "returned" value of your DateTime object is seen by you, by hoovering over the variable in the IDE while debugging.
This is just another form of calling internally the default ToString() method of your DateTime object by the debugger. The value is the same.
See: system.datetime
DateTime Values and their string representations
Internally, all DateTime values are represented as the number of ticks (the number of 100-nanosecond intervals) that have elapsed since 12:00:00 midnight, January 1, 0001. The actual DateTime value is independent of the way in which that value appears when displayed in a user interface element or when written to a file. The appearance of a DateTime value is the result of a formatting operation. Formatting is the process of converting a value to its string representation.
Because the appearance of date and time values is dependent on such factors as culture, international standards, application requirements, and personal preference, the DateTime structure offers a great deal of flexibility in formatting date and time values through the overloads of its ToString method. The default DateTime.ToString() method returns the string representation of a date and time value using the current culture's short date and long time pattern.
Upvotes: 0
Reputation: 13474
Try this
DateTime date1 = DateTime.Now;
string datestring=date1.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture)
http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
Upvotes: 0
Reputation: 148524
try this :
date1.ToString("yyyy-MM-dd HH:mm:ss")
Also look at the table below here http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
As Jon said (and which I didn't mention) :
you should add InvariantCulture
( if you dont want it to be used with current thread culture ) :
CultureInfo heIL = new CultureInfo("he-IL");
heIL.DateTimeFormat.Calendar = new HebrewCalendar();
CultureInfo dft = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = heIL;
Check these :
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture);
result ( I live in israel) :
תשע"ד-ח'-ט' 13:32:31
2014-04-09 13:32:31
Upvotes: 5
Reputation: 1499730
The code you've written just assigns a value to a variable. It doesn't return anything, and it doesn't have any inherent string representation. A DateTime
value is just a date/time. It can be displayed in whatever format you want, but that's not part of the value of the variable.
It sounds like you're wanting to convert it to a string in a particular format, which you should do with DateTime.ToString
- but only when you really need to. Try to keep the value as a DateTime
for as long as possible. Typically you only need to convert to a string in order to display the value to a user, or possibly to use it in something like JSON. (If you find yourself converting it to a string for database usage, you're doing it wrong - make sure your schema has an appropriate data type for the field, use a parameterized query, and set the parameter value to just the DateTime
- nor formatting required.)
The format you've specified looks like it's meant to be a machine-readable one rather than a culture-specific one, so I'd suggest:
string text = date1.ToString("yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture);
By specifying the invariant culture, we've said that the result shouldn't depend on the current culture (which otherwise it would) - this can make a big difference if the current culture uses a different calendar system, for example.
Upvotes: 2
Reputation: 1
you can just use something like this to format the date:
date1.ToString("dd/MM/yyyy HH:mm:ss")
By using "HH" instead of "hh" you will get 24hour format on the hour.
Hope that helps.
Upvotes: 0
Reputation: 1471
Something like the following, which is one of the constructors of the DateTime
object:
d = new DateTime(2014, 5, 6, 5, 4, 30);
Which will set d
to 06/05/2014 05:04:30. Its parameters are in descending size order, so Year, Month, Day, Hour, Minute then Seconds.
If you want to adjust the time by an amount, look at the add methods, or TimeSpans
.
Upvotes: 0