Convert datetime string with milliseconds to datetime - vb.net

I'm trying to convert a string (containing a datetime with milliseconds) into a DateTime type with milliseconds, but it isn't working for me.
Dim dt as String = "2018-02-02 08:01:16.111"
dim dtDate as DateTime = Convert.ToDateTime(dt)
RichTextBox1.AppendText(dtDate.ToString)
The result is always: 2/2/2018 8:01:16 AM
How can I have that DateTime object contain milliseconds?

How can I have that DateTime object contain milliseconds?
It already does have the milliseconds.
Sub Main()
Dim dt As String = "2018-02-02 08:01:16.111"
Dim dtDate As DateTime = Convert.ToDateTime(dt)
Console.WriteLine(dtDate.Millisecond)
End Sub
111
What I guess you want to do is have it display the milliseconds when it is displayed as a string again. So String >> DateTime >> String. You do RichTextBox1.AppendText(dtDate.ToString) but ToString by default doesn't include the milliseconds.
Use the ToString(string format) method which accepts a format string. Pass this format yyyy-MM-dd HH:mm:ss.fff
Dim dt as String = "2018-02-02 08:01:16.111"
Dim dtDate as DateTime = Convert.ToDateTime(dt)
RichTextBox1.AppendText(dtDate.ToString("yyyy-MM-dd HH:mm:ss.fff"))

You should specify datetime format in ToString method:
https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
Milliseconds part is "fff".

Related

Difficulty with formatting a string to parse to date in vb.net

dim dt as string= "03/22/20 20:12:27.320"
Dim tempDate As DateTime = DateTime.ParseExact(dt, "MM/dd/yy hh:mm:ss.fff", CultureInfo.GetCultureInfo("en-US").DateTimeFormat)
This gives error sometimes : System.FormatException: 'String was not recognized as a valid DateTime.'
Why? It seems to be formatted properly. VB.net 4.6.1 framework
"hh" is 12-hour format. 20 is obviously not a valid hour in 12-hour format. If you want 24-hour format then use "HH".
Have you tried to use CDate() function?
dim dt as string= "03/22/20 20:12:27.320"
dim tempDate as Datetime = Cdate(dt)
or
dim tempDate as Datetime = Cdate("03/22/20 20:12:27.320")

VB.NET String Data Manipulation for DateTimePicker

I want to manipulate my String data for example I have a x="20140118"
to y="01/18/2014" how can I do it? I need it for the value in DateTimePicker on VB.NET.
Thanks
DateTimePicker.Value wants a DateTime not a string. So you need to parse it:
Dim dt As DateTime = DateTime.ParseExact("20140118", "yyyyMMdd", CultureInfo.InvariantCulture)
dateTimePicker1.Value = dt
DateTime.ParseExact
Custom Date and Time Format Strings
However, just for the sake of completeness, if you need a string 01/18/2014 from the DateTime you can use DateTime.ToString:
Dim date As String = dt.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)
If that is your local date format you could also use these more concise approaches:
)
Dim date As String = dt.ToShortDateString()
)
Dim date As String = dt.ToString("d")

Date time to string conversion

I have to convert a string to date time...
String data is in this form: 13.6.2013. 8:06:36
The code:
Dim pDate As String
pDate = TextBox16.Text
Dim pro_Date As DateTime = DateTime.ParseExact(pDate, "DD.M.YYYY. hh24:mm:ss", CultureInfo.InvariantCulture)
And the error I get is: string was not recognized as a valid datetime
How to convert this?
The format string is case sensitive, so this does not work: "DD.M.YYYY". Also, 24h clock is uppercase H not "hh24". You need a single H because 8:06:36 has no leading zero on the hour.
Dim pro_Date As DateTime = DateTime.ParseExact(pDate, "dd.M.yyyy. H:mm:ss", CultureInfo.InvariantCulture)
More informations acc. the "H" Custom Format Specifier

Convert String to Date Time [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Convert string to DateTime in c#
I am trying to convert a string in the format "20110617111051" to date time.
Currently I am using String.SubString() function to extract year, month, day, time to format a standard string and then using Convert.ToDateTime(string). Is there any other simple way to do this?
Dim x as String="20110617110715"
Dim standard as string = x.SubString(0,4) & "-" & x.SubString(4,2) & "-" & x.SubString(6,2) 'and time
Dim dateTime as DateTime = Convert.ToDateTime(standard)
You can use DateTime.ParseExact.
DateTime date = DateTime.ParseExact(x, "yyyyMMddHHmmss", CultureInfo.CurrentCulture);
VB
Dim myDate as DateTime = DateTime.ParseExact(x, "yyyyMMddHHmmss", CultureInfo.CurrentCulture)
Use the DateTime.ParseExact function in conjunction with the exact format of your input string. Example:
C#:
string input = "20110617111051";
string format = "yyyyMMddhhmmss";
DateTime dateTime = DateTime.ParseExact(input, format, CultureInfo.InvariantCulture);
VB:
Dim input As String = "20110617111051"
Dim format As String = "yyyyMMddhhmmss"
Dim dateTime as DateTime = DateTime.ParseExact(input, format, CultureInfo.CurrentCulture)
See this page for more info on custom date and time strings.

VB.net ISo DateFormat

I have a date in VB.net that is stored in ISO 8601 format
'Date here is local time in germany
Dim s As String = "2010-09-27T16:54:28+02:00"
Dim dt As DateTime
If Date.TryParse(s, dt) = True Then
End If
When I use try to parse it shows me date in my local timezone,
how can I get date as
2010-9-27 4:54 PM as well as GMT DATE ?
A date is not stored internally with any specific representation.
You need to format it for display, using the correct DateTime format string (either custom or standard):
Dim s As String = "2010-09-27T16:54:28+02:00"
Dim dt As DateTime
If Date.TryParse(s, dt) = True Then
Dim gmt as String = dt.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture)
Dim custom as String = dt.ToUniversalTime().ToString("yyyy-M-d h:mm tt", CultureInfo.InvariantCulture)
End If