索引和长度应指序列中的位置

时间:2017-09-18 17:14:57

标签: vb.net

我需要打破一个变量来获取数据库的值。今天我的全部回报将是“2017-09-15T14:01:46”我只需要2017-09-15和14:01,我试着去做

.Substring(0.10)为日期和工作,已经在我尝试使用Substring(11,16)并且出现问题标题中的错误。

3 个答案:

答案 0 :(得分:0)

您对函数Substring的参数是错误的。

函数Substring的第二个参数(在你的情况下为16)需要是函数将返回的字母数量,而不是它需要结束的索引。

它将与Substring(11,5)类似,其中5是返回子字符串的长度。

    Dim temp_date As String = "2017-09-15T14: 01: 46"
    Dim main_date As String = temp_date.Substring(0, 10)
    Dim main_time As String = temp_date.Substring(11, 6)

OR

使用AustinS90提出的日期时间对象的更好方法(这将支持很多时间格式化的字符串):

    Dim temp_date As DateTime = DateTime.Parse("2017-09-15T14: 01: 46")
    Dim main_date As String = temp_date.Year() & "-" & temp_date.Month() & "-" & temp_date.Day
    Dim main_time As String = temp_date.Hour & ":" & temp_date.Minute

答案 1 :(得分:0)

因此,使用VB.NET,您可以使用DateTime方法。从DateTime,您可以为日期和DateTime.ToShortTimeString执行类似DateTime.Date或DateTime.ToShortDateString的操作。

答案 2 :(得分:0)

假设您的结果字符串中总是有大写字母

dim xValue as string = "2017-09-15T14: 01: 46"
dim xStr() as string = xValue.split("T")
dim xDate as string = ""
dim xTime as string = ""

if xstr.count>0 then
  xDate = xStr(0)
  xTime = xStr(1)
end if

dim xValue as string = "2017-09-15T14: 01: 46"
dim xDate as string = strings.left(xValue, 10)
dim xTime as string = strings.mid(xValue, 12)