2016-09-12 37 views
0

我需要从一个缩写获得一个月的数量:如何在vb.net中将MMM格式的月份转换为MM日期?

我有这样的:

Dim monthname as string = "Jun" 

,我需要得到这个:

Dim monthnumber as integer = 6 

我怎样才能得到呢?感谢

+1

http://stackoverflow.com/questions/3662292/converting-month-name-to-integer –

+0

我只需要字符串月份名称转换为月份数,但没有通过完整的日期 –

+0

你能告诉你如何将字符串转换为日期时间吗? – sr28

回答

2

您可以使用ParseExact做到这一点:

Dim monthname as string = "Jun" 
Dim monthNumber as integer = DateTime.ParseExact(monthname , "MMM", CultureInfo.CurrentCulture).Month 

或者,创建一个字典:

Dim months = New Dictionary(Of String, Integer) From 
{{1, "Jan"}, {2, "Feb"}}, ... 

Dim monthNumber = months(monthname) 
+0

您的第一个代码对我来说非常完美,感谢您的帮助 –

1

你可以尝试使用这个:

DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture) 

C#

var t = DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture); 
var monthNum = t.Month; 

VB:

Dim t = DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture) 
Dim monthNum = t.Month 
1

我测试的代码正常工作。请同时导入System.Globalization。

Imports System 
Imports System.Globalization 

Public Class Test 
    Public Shared Sub Main() 
     Dim monthname as string = "Jun" 
     Dim monthnumber as integer = DateTime.ParseExact(monthName, "MMM", CultureIn 

fo.CurrentCulture).Month 
     System.Console.WriteLine(monthnumber) 
    End Sub 
End Class 
0
Sub Main() 
    MonthsAndNmubers.GetMonthNumber("Jan") 
End Sub 

Public Class MonthsAndNmubers 
    Private Shared ReadOnly monthsAndNumbers As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)() _ 
From { 
     {"Jan", 1}, _ 
     {"Feb", 2}, _ 
     {"Mar", 3}, _ 
     {"Apr", 4}, _ 
     {"May", 5}, _ 
     {"Jun", 6}, _ 
     {"Jul", 7}, _ 
     {"Aug", 8}, _ 
     {"Sep", 9}, _ 
     {"Oct", 10}, _ 
     {"Nov", 11}, _ 
     {"Dec", 12} _ 
    } 
    Public Shared Function GetMonthNumber(month As String) As Integer 
     Dim monthNumber As Integer = 0 
     monthsAndNumbers.TryGetValue(month, monthNumber) 
     Return monthNumber 
    End Function 
End Class 
相关问题