我想在VB6中用阿拉伯语显示日期。 但它用英语显示日期。 我在“区域和语言”窗口中设置了以下内容:
在“区域和语言”窗口中,日期以阿拉伯语正确显示。
我使用以下代码以阿拉伯语显示日期:
MsgBox date
答案 0 :(得分:3)
VB6并不是开箱即用的。
如果您希望将日期格式化为dd / MM / yyyy,请使用
MsgBox Format$(date, "dd/mm/yyyy")
或
MsgBox FormatDateTime(date, vbShortDate)
由here 3>指示"short date"和Arvo解释
答案 1 :(得分:0)
问题是MsgBox和Format不适用于非ASCII字符。简单的实验。使用编辑框创建表单。将编辑框属性更改为
字体Arial Unicode MS
Private Declare Function GetLocaleInfo Lib "kernel32" _
Alias "GetLocaleInfoA" ( _
ByVal locale As Long, _
ByVal lcType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) _
As Long
Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_NATIVE_LANGUAGE = &H4
Const LOCALE_NATIVE_COUNTRY = &H8
Function GetInfo(ByVal info As Long) As String
Dim rv As Long, data As String
data = String$(256, 0)
rv = GetLocaleInfo(LOCALE_USER_DEFAULT, info, data, Len(data))
If rv > 0 Then
GetInfo = Left(data, rv - 1)
Else
GetInfo = ""
End If
End Function
Function Whatever() As String
Dim str As String
str = ""
str = str & "You live in " & GetInfo(LOCALE_NATIVE_COUNTRY) & vbCrLf
str = str & "You speak " & GetInfo(LOCALE_NATIVE_LANGUAGE) & vbCrLf
Whatever = str
End Function
Private Sub Form_Load()
Dim str As String
str = Whatever
NotMsgBox.Text = str
MsgBox str, vbOK, "Egyptian Arabic"
End Sub
你注意到的是,在Msgbox中,阿拉伯语和埃及语都是乱七八糟的,但是在文本框中它正确显示。如果你现在改变了什么
Function Whatever() As String
Dim str As String
str = ""
str = str & "Long Date is " & Format$(Now, "Long Date") & vbCrLf
str = str & "Short Date is " & Format$(Now, "Short Date") & vbCrLf
str = str & "General Date is " & Format$(Now, "General Date") & vbCrLf
str = str & "Medium Date is " & Format$(Now, "Medium Date") & vbCrLf
str = str & "You live in " & GetInfo(LOCALE_NATIVE_COUNTRY) & vbCrLf
str = str & "You speak " & GetInfo(LOCALE_NATIVE_LANGUAGE) & vbCrLf
Whatever = str
End Function
您会注意到,在长格式和中等格式中,月份显示为?????。它已被正确转换为阿拉伯语,但它已被翻译回ASCII,导致加载?。
你能做些什么?