vb.net - 如何使用 vb.net 获取子字符串日期(年份)?

标签 vb.net

我一直在这样做,是否可以获取日期时间中的中间字符串。

示例:

基本上我的字符串返回“12/23/2015 12:00:00 AM”。

但是,我想要的实际上是 2015 年的“15”。

我一直在使用类似 'strDate = strDate.Substring(0, 9)',

当日期类似于“1/2/2015 12:00:00 AM”时,有时会返回错误

有人可以帮我解决这个问题吗,我不确定我们是否可以得到中间。

最佳答案

不要为此使用字符串方法,请使用DateTime.TryParseExact:

Dim str = "12/23/2015 12:00:00 AM"
Dim dt As DateTime
If DateTime.TryParseExact(str, "MM'/'dd'/'yyyy hh:mm:ss tt", Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, dt) Then
    Dim yearOnly As String = dt.ToString("yy") ' 15
End If

更新:使用 CultureInfo.InvariantCulture 和这种格式,您甚至不需要使用 TryParseExact,您可以使用 Parse /立即尝试解析:

DateTime.TryParse(str, CultureInfo.InvariantCulture, DateTimeStyles.None, dt) 

MSDN:Custom Date and Time Format Strings, The "yy" Custom Format Specifier

关于vb.net - 如何使用 vb.net 获取子字符串日期(年份)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864933/

相关文章:

vb.net - 当在验证事件处理程序中将 Enabled 设置为 true 时,Tabindex 会被忽略

mysql - 如何将具有自动递增名称的列添加到 MySql 表中?

asp.net vb 用户控件在调用页面上引发事件

sql - .NET DataGridView 将 1899-12-30 显示为仅时间值的一部分

javascript - 如何在asp.net上压缩数据并在javascript中解压缩

c# - 从不同线程 vb.net 更新 BindingList(of T)

.net - "Peeking Ahead"循环字典项时

vb.net - 如何以另一个用户身份从 VB.NET 运行另一个 .exe?

vb.net - Enter 时未调用 ComboBox 的 SelectedIndexChanged 事件

asp.net - 密码的正则表达式匹配