[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform.swt] Accessing OS time format
|
I use the DateTime for data entry code in my RCP application (on Windows), The widget displays the
time in the format specified in the Windows Control panel. I store the date in XMLGregorianCalendar
and need to display is later in a table form. I have not found any Java support for obtaining the
OS time format and I was wondering if this could be made available in SWT.
The code exists internally in DateTime.getTimeFormat (at least for Windows). Is this a reasonable
enhancement request?
By the way, copying the code from DateTime seems a way to get access now (totally discouraged,
unsupported, and non-portable, I know):
public static void main(String[] args) {
TCHAR tchar = new TCHAR (getCodePage (), 80);
int size = OS.GetLocaleInfo (OS.LOCALE_USER_DEFAULT, OS.LOCALE_STIMEFORMAT, tchar, 80);
System.out.println(size > 0 ? tchar.toString (0, size - 1) : "h:mm:ss tt"); //$NON-NLS-1$
}
static int getCodePage () {
if (OS.IsUnicode) return OS.CP_ACP;
int /*long*/ hFont = OS.SendMessage (new Shell().handle, OS.WM_GETFONT, 0, 0);
LOGFONT logFont = OS.IsUnicode ? (LOGFONT) new LOGFONTW () : new LOGFONTA ();
OS.GetObject (hFont, LOGFONT.sizeof, logFont);
int cs = logFont.lfCharSet & 0xFF;
int [] lpCs = new int [8];
if (OS.TranslateCharsetInfo (cs, lpCs, OS.TCI_SRCCHARSET)) {
return lpCs [1];
}
return OS.GetACP ();
}