Don't worry about formats too much - use DateTime.TryParse to convert the user set culture version, which is what the user is likely to use when he enters it! Or better, use a Calendar control or similar so that the user doesn't type it, and which returns you a DateTime value directly.
Then pass it to SQL as a Parameterised query, using the DateTime value directly - don't convert anything to strings to send to SQL, it understands datetimes and numbers directly passes as parameters.
Using con As New SqlConnection(strConnect)
con.Open()
Using com As New SqlCommand("INSERT INTO myTable (insertDate) VALUES (@DT)", con)
com.Parameters.AddWithValue("@DT", myDateTimeValue)
com.ExecuteNonQuery()
End Using
End Using
Using strings implies string concatenation to build an SQL command, and that is very, very dangerous - it allows SQL Injection which can damage or destroy your database.