자이 썬을 처음 접했을 때 자이 썬 (Datetime) 유형을 java.util.Date로 어떻게 변환합니까?(자이 썬의) datetime 유형을 java.util.Date로 어떻게 변환합니까?
감사합니다.
자이 썬을 처음 접했을 때 자이 썬 (Datetime) 유형을 java.util.Date로 어떻게 변환합니까?(자이 썬의) datetime 유형을 java.util.Date로 어떻게 변환합니까?
감사합니다.
:
java.util.Date.getTime() (단지 CPython과 같은) 자이 썬은 시대 이후 초를 제공하면서 시대 이후 밀리 초를 제공합니다. 그래서 당신은 1000
에 의해 java.util.Date에서 주어진 값을 분할해야 자이 썬의 FAQ
내 솔루션입니다 : 내가 장난과 실험의 비트를했다
from java.util import Calendar, GregorianCalendar
def datetimeToJavaDate(value):
cal = GregorianCalendar(value.year, value.month - 1, value.day,
value.hour, value.minute, value.second)
cal.set (Calendar.MILLISECOND, value.microsecond/1000)
return cal.getTime()
이 두 가지 방법은 java.sql.Timestamp로 변환 한 다음 다른 방향으로 java.sql.Timestamp.time() (1970 년 1 월 1 일부터 ms)을 사용하여 내가 사용하는 방법입니다.
여기서 "bst"는 British Summer Time을 나타냅니다 ... 그 당시에는 그러한 날짜를 올바르게 고려했는지 확인했습니다. 즉, tz 모듈이 그 달을 감지 할 수있을만큼 충분히 영리한 것처럼 보일 것입니다. 여름은 BST가 적용되며 이에 따라 조정됩니다.
희망당신이 그것에 던질 수있는 다른 시간대로 작동합니다 ...
def convert_datetime_bst_to_javaSQLTimestamp(datetime_val):
if datetime_val is None: return None
assert type(datetime_val) is datetime.datetime
tz_local = tz.tzlocal()
gmt_datetime = datetime_val - tz_local.dst(datetime_val)
delta = gmt_datetime - datetime.datetime(1970, 1, 1)
seconds = int(delta.total_seconds())
ms_fraction = int(delta.microseconds/1000)
ms = seconds * 1000 + ms_fraction
return java.sql.Timestamp(ms)
def conv_ms_to_datetime_bst(ms):
assert type(ms) is long, '# ms type %s' % (type(ms),)
# NB potentially a problem with pre-1970 and post-2038 dates: datetime.datetime.fromtimestamp(ms/1000.0)
gmt_datetime = datetime.datetime(1970, 1, 1) + datetime.timedelta(0, 0, 0, ms)
tz_local = tz.tzlocal()
return gmt_datetime + tz_local.dst(gmt_datetime)
어떻게 시간대를 지원하는 것? – wberry