我使用了以下代码。
string result = DateTime.ParseExact("24/5/2009 3:40:00 AM",
"d/M/yyyy h:mm",
CultureInfo.InvariantCulture)
.ToString("M/d/yyyy h:mm");
在12'0时钟之后的文本框时间( 例如:24/5/2009 14:00)我想 转换为格式为24/5/2009 2:00 PM.Can任何人都可以提供适当的代码吗?
答案 0 :(得分:4)
假设您的原始日期以字符串开头,并且您希望它最终成为另一个字符串,您可以在C#中执行以下操作:
string from = "24/5/2009 3:40:00 AM";
DateTime dt = DateTime.ParseExact(from, "d/M/yyyy h:mm:ss tt", , System.Globalization.CultureInfo.InvariantCulture);
string to = dt.ToString("MM/dd/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
*编辑:修复了格式化字符串。它假设您的原始字符串只有小于10的单位数日,月和小时值。它还假设您希望它们都是结果的2位数值。
以下是有关该主题的MSDN文档:Custom Date and Time Format Strings
答案 1 :(得分:1)
Dim result As String = DateTime.ParseExact("24/5/2009 3:40:00 AM",
"d/M/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture)
.ToString("M/d/yyyy h:mm:ss tt")
另见:
答案 2 :(得分:0)
DateTime
值根本没有格式,因此如果源是日期时间值,那么它实际上不是转换,而只是格式化输出。
您可以使用自定义字符串"M'/'d'/'yyyy h':'mm':'ss tt"
来获得完全相同的格式。 (您的问题提到了两种不同的格式,因此我假设它是您想要的示例数据所代表的格式;具有秒的格式。)
示例:
Dim result As String = source.ToString("M'/'d'/'yyyy h':'mm':'ss tt")
如果源是一个字符串,以便它实际上是您需要的转换,您可以使用字符串操作将字符串切换为组件并重新排列它们,或者您可以将字符串解析为DateTime
值并将其重新格式化为一个新的字符串。
示例:
Dim source As String = "24/5/2009 3:40:00 AM"
Dim d As DateTime = DateTime.ParseExact(source, "d'/'M'/'yyyy h':'mm':'ss tt", CultureInfo.InvariantCulture)
Dim result As String = d.ToString("M'/'d'/'yyyy h':'mm':'ss tt")
或者:
Dim source As String = "24/5/2009 3:40:00 AM"
Dim d As String() = source.Split("/".ToCharArray(), 3)
string result = d(1) + "/" + d(0) + "/" + d(2)
答案 3 :(得分:0)
使用此
sql = "INSERT INTO emp(ID, firstname, lastname, DOB) VALUES(Null, '" & txtFirstName.Text.Trim & "','" & txtLastName.Text.Trim & "', '" & dpDOB.Value.Date.ToString("yyyy-MM-dd") & "');"
mMySQLConnection.Open();
comm = New MySqlCommand(sql, mMySQLConnection);
comm.CommandType = CommandType.Text;
comm.ExecuteNonQuery();
mMySQLConnection.Close();