試試這門課將西班牙語日期轉換成英語或英語日期轉換成西班牙語。只需稍作更改即可改變文化。
Imports System
Imports System.Globalization
Imports System.Threading
Imports Microsoft.VisualBasic
Public Class ClassDateLanguageConversions
Public Function SpanishToEnglish(_
p_strSpanishDateTime As String, _
Optional p_blnFormal As Boolean = False _
) As DateTime
SpanishToEnglish = Nothing
Try
Dim strReformattedDate As String = p_strSpanishDateTime
'Handle the abiguity of Tuesday abbrieviation
' and March abrieviation by normalizing
strReformattedDate = strReformattedDate.ToLower.Replace(_
"martes, marzo", "mar, marzo")
strReformattedDate = strReformattedDate.ToLower.Replace(_
"martes marzo", "mar, marzo")
strReformattedDate = strReformattedDate.ToLower.Replace(_
"mar marzo", "mar, marzo")
strReformattedDate = strReformattedDate.ToLower.Replace(_
"martes, mar", "mar, marzo")
strReformattedDate = strReformattedDate.ToLower.Replace(_
"martes mar", "mar, marzo")
strReformattedDate = strReformattedDate.ToLower.Replace(_
"mar, mar", "mar, marzo")
strReformattedDate = strReformattedDate.ToLower.Replace(_
"mar mar", "mar, marzo")
'Shorten final date string by default
If Not p_blnFormal Then
strReformattedDate = strReformattedDate.ToLower.Replace(_
" de ", " ") 'Remove "the"
strReformattedDate = strReformattedDate.ToLower.Replace(_
" el ", " ") 'Remove "on the"
End If
Thread.CurrentThread.CurrentCulture = New CultureInfo("es")
Dim datetimeSpanish As DateTime = DateTime.Parse(strReformattedDate)
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
SpanishToEnglish = datetimeSpanish
Catch ex As Exception
'Returns null
End Try
End Function
Public Function EnglishToSpanish(_
ByVal p_datetimeEnglishDateTime As DateTime, _
Optional ByVal p_blnFormal As Boolean = False _
) As String
EnglishToSpanish = ""
Try
Thread.CurrentThread.CurrentCulture = New CultureInfo("es")
Dim strSpanishDate As String = _
p_datetimeEnglishDateTime.ToLongDateString
'Shorten final date string by default
If Not p_blnFormal Then
strSpanishDate = strSpanishDate.Replace(_
" de ", " ") 'Remove "the"
strSpanishDate = strSpanishDate.Replace(_
" el ", " ") 'Remove "on the"
End If
EnglishToSpanish = strSpanishDate
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
Catch ex As Exception
'Returns null
End Try
End Function
End Class
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim objClassDateLanguageConversions As New ClassDateLanguageConversions
Dim datetimeEnglish1 As DateTime = objClassDateLanguageConversions.SpanishToEnglish("lunes, 24 de marzo de 2014")
Dim datetimeEnglish2 As DateTime = objClassDateLanguageConversions.SpanishToEnglish("Mar, mar 4 2014")
Dim datetimeEnglish3 As DateTime = objClassDateLanguageConversions.SpanishToEnglish("Lun, marzo 24 2014")
Dim datetimeEnglish4 As DateTime = objClassDateLanguageConversions.SpanishToEnglish("lun, abr 28 2014")
Dim datetimeEnglish5 As DateTime = objClassDateLanguageConversions.SpanishToEnglish("lunes, 24 marzo 2014")
Dim strSpanish1 As String = objClassDateLanguageConversions.EnglishToSpanish(Now)
Dim datetimeEnglish10 As DateTime = objClassDateLanguageConversions.SpanishToEnglish(strSpanish1)
Dim strSpanish2 As String = objClassDateLanguageConversions.EnglishToSpanish("Mar 4, 2014")
Dim datetimeEnglish11 As DateTime = objClassDateLanguageConversions.SpanishToEnglish(strSpanish2)
Dim strSpanish3 As String = objClassDateLanguageConversions.EnglishToSpanish("Mar 4, 2014 9:00pm")
Dim datetimeEnglish12 As DateTime = objClassDateLanguageConversions.SpanishToEnglish(strSpanish3)
Dim strSpanish4 As String = objClassDateLanguageConversions.EnglishToSpanish("Thursday May 1, 2014")
Dim datetimeEnglish13 As DateTime = objClassDateLanguageConversions.SpanishToEnglish(strSpanish4)
End Sub
End Class
您是否需要將字符串轉換爲日期? –
@Arju是的。我知道如何在字符串與英文處於相同的語言環境中時執行此操作,但不知道如何處理。 – RiThBo