2017-10-10 148 views
-3

所以我想从.NET代码转换为C# 下面的代码:日期时间到C#

While getReader.Read 

     ' getting the time in and time out 12 hour format 
     time_in = (getReader.Item("time_in").ToString) 
     time_out = (getReader.Item("time_out").ToString) 

     With Listview1.Items.Add(getReader.Item("worker_fullname").ToString) 

      .SubItems.Add(Format(time_in, "h:mm:ss tt")) 
      .SubItems.Add(Format(time_out, "h:mm:ss tt")) 
      .SubItems.Add(Format(getReader.Item("date"), "MMM dd, yyyy")) 

     End With 

    End While 

在线代码转换不会帮我。我在(getReader.Item("time_in").ToString)有困难。我试过DateTime.TryParseExact(getReader[3], "h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out time_in);,但它说它不能从对象转换为字符串。 而在EndEnd With中,似乎C#没有用于此的等效语言结构。

+0

你也应该显示你的c#代码。 – Rotem

+4

沟“代码转换器”。你想让你的C#代码做*做什么?你希望实现什么功能?你写了什么代码来实现该功能?它以何种方式无法按预期工作? – David

+1

'time_in','time_out'字段的时间是多少?如果它是'DateTime'你不需要也不应该转换或解析任何东西。只需将值转换为DateTime即可。这也应该在VB.NET代码中完成。它实际上是一个*错误*使用字符串,而不是日期 –

回答

0

呼叫ToString()

DateTime.TryParseExact(getReader[3].ToString(), "h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out time_in); 
0
while (reader.Read()) 
{ 
    var timeIn = reader["time_in"].ToString(); 
    var timeOut = reader["time_out"].ToString(); 
    var workerFullName = reader["worker_fullname"].ToString(); 
    var date = reader["date"].ToString(); 

    //move to utility method 
    DateTime timeInDateTime; 
    DateTime.TryParseExact(timeIn, "h:mm:ss tt", null, DateTimeStyles.None, out timeInDateTime); 

    DateTime timeOutDateTime; 
    DateTime.TryParseExact(timeOut, "h:mm:ss tt", null, DateTimeStyles.None, out timeOutDateTime); 

    DateTime dateParsed; 
    DateTime.TryParseExact(date, "MMM dd, yyyy", null, DateTimeStyles.None, out dateParsed); 

    //add to list 
} 
0

WITH ...结束与没有在C#中等价(不管我多么喜欢它)。 一个具有将它分配给一个局部变量,例如:

... 
var item = Listview1.Items.Add(getReader.Item("worker_fullname").ToString); 
item.SubItems.Add($"{time_in, "h:mm:ss tt")) 
... 

作为用于从读取器获取数据这取决于如何存储在存储装置(数据库)的那些数据。在你的情况我guessc要么getReader.GetString(3)或getReader.GetDateTime(3)

0

试试这个

(getReader.Item("time_in").Value.ToString) 
0

您可以使用此

的DateTime DT = DateTime.parse(读卡器[” time_in“]。toString(”MM/dd/yyyy hh:mm:ss tt“));