powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Системная установка даты
6 сообщений из 6, страница 1 из 1
Системная установка даты
    #32585532
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я могу получить системную установку даты? Я хочу получить, например,
yyyy/mm/dd , если это американский формат даты и dd.mm.yyyy в русском формате?
...
Рейтинг: 0 / 0
Системная установка даты
    #32585631
Диметр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а если

dd=Date

y=Year(Date)
m=Month(Date)
d=Day(Date)

А там уже что хочешь, то с ними и делай :-)

P.S.: надеюсь, я правильно понял вопрос...
...
Рейтинг: 0 / 0
Системная установка даты
    #32585701
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиметрНу а если

dd=Date

y=Year(Date)
m=Month(Date)
d=Day(Date)

А там уже что хочешь, то с ними и делай :-)

P.S.: надеюсь, я правильно понял вопрос...

Не так просто, не так просто!

Моя программа может попасть в любые условия, в любое языковое и в том числе "временное" пространство. И я заранее не могу знать каков формат даты установлен на компе. Поэтому, если я проставляю формат dd/mm/yyyy на каком нибудь поле, то 10/02/2004 американцем может быть воспринято как
2 октября, а не 10 февраля!
...
Рейтинг: 0 / 0
Системная установка даты
    #32585839
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мочет не совсем то, но посмотри.
Перевод даты в системный вид:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Option Explicit
Private Type SYSTEMTIME
        wYear As Integer
        wMonth As Integer
        wDayOfWeek As Integer
        wDay As Integer
        wHour As Integer
        wMinute As Integer
        wSecond As Integer
        wMilliseconds As Integer
End Type


Private Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" _
        (ByVal Locale As Long, _
        ByVal dwFlags As Long, _
        lpDate As SYSTEMTIME, _
        ByVal lpFormat As String, _
        ByVal lpDateStr As String, _
        ByVal cchDate As Long) As Long

Private Sub Command1_Click()
    Const LOCALE_USER_DEFAULT = &H400
    Const DATE_SHORTDATE = &H1
    Dim lpDate As SYSTEMTIME
    Dim lpFormat As String
    Dim lpSeparator As String
    Dim cchDate As Long
    Dim lpDateStr As String
    Dim rc As Long

    lpDate.wMonth =  7 
    lpDate.wDay =  1 
    lpDate.wYear =  2004 
    lpFormat = vbNullString
    lpDateStr = String( 254 , Chr( 0 ))
    cchDate =  0 

    rc = GetDateFormat(LOCALE_USER_DEFAULT,  0 , lpDate, lpFormat, lpDateStr, cchDate)
    lpDateStr = String(rc, Chr( 0 ))
    rc = GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, lpDate, lpFormat, lpDateStr, rc)

    Debug.Print Left(lpDateStr, rc -  1 )
End Sub

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Системная установка даты
    #32585863
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A вот, кажется и то, что ты искал.
Как узнать формат даты:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Option Explicit
Private Const LOCALE_USER_DEFAULT = &H400
Private Const LOCALE_SSHORTDATE = &H1F         '  short date format string
 
Private Const LOCALE_SDATE = &H1D         '  date separator
 

Private Declare Function GetLocaleInfo& Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long)


Private Function GetLocaleDateFormat()
    Dim lpFormat As String
    Dim cchDate As Long
    Dim rc As Long

    cchDate =  0 
    lpFormat = String( 254 , Chr( 0 ))
    
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, lpFormat, cchDate)
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, lpFormat, rc)
    lpFormat = Left(lpFormat, rc -  1 )
    GetLocaleDateFormat = lpFormat
End Function

Private Function GetLocaleDateSeparator()
    Dim lpFormat As String
    Dim cchDate As Long
    Dim rc As Long

    cchDate =  0 
    lpFormat = String( 254 , Chr( 0 ))
    
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SDATE, lpFormat, cchDate)
    rc = GetLocaleInfo&(LOCALE_USER_DEFAULT, LOCALE_SDATE, lpFormat, rc)
    lpFormat = Left(lpFormat, rc -  1 )
    GetLocaleDateSeparator = lpFormat
End Function


Private Sub Command1_Click()
    Dim lpFormat As String
    Dim lpSeparator As String
    Dim sDate As String

    lpFormat = GetLocaleDateFormat
    lpSeparator = GetLocaleDateSeparator

    Debug.Print lpFormat, lpSeparator
End Sub
--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Системная установка даты
    #32586025
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boevik

Да, второй пост - то что нужно! Спасибо огромное!

Удачи!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Системная установка даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]