Date-Time�̎�ȃ��\�b�h�AChronoUnit�ADateTimeFormatter�ƃt�H�[�}�b�g�p�̃p�^�[�������Ȃǂ̎g�����ɂ��ĉ�����܂��B
�@2014�N3���Ƀ����[�X���ꂽJava 8�ł́A���̑O�܂œ����������Ă���java.util.Date��java.util.Calendar�ȂǂƂ͈قȂ�A�܂������V��������������API�Ƃ���Date-Time API ���lj�����܂����B�{�A�ڂł́A����Date-Time API�ɂ��Ĉ�ʓI�ȋƖ��V�X�e�����\�z����ۂɕK�v�ȏ��ɂ��ĊȒP�Ɍ��Ă����܂��B
�@�O��́uImmutable�ŃX���b�h�Z�[�t�ɂȂ���Java�̐V��������API�̊�b�m���v�ł́ADate-Time API�̊T�v��AJava 8���O�̋�����API���牽�����P���ꂽ�̂��ɉ����A�V�����lj����ꂽ���܂��܂ȃN���X�ɂ��ĉ�����܂����B�����Java 8��蓱�����ꂽDate-Time API�ʼn����ł���̂���T�邽�߁A�p�ӂ���Ă��郁�\�b�h�ɂ��Č��Ă����A���ۂɂǂ̂悤�Ɏg���̂������Ă����܂��B
�@�܂��A������API�Ƃ̕ϊ��ɂ��Ă͎���̘A�ڂŐ�������\��ł��B
�����̘A�ڂł�Java 8���lj����ꂽjava.time�p�b�P�[�W�ȉ���API���uDate-Time API�v�ƌĂ�ł����A������O��java.util.Date�Ȃǂ̓�����API���u������API�v�ƌĂ�ł����܂��B�܂��A���s���̃^�C���]�[���͓��{�ɂȂ��Ă��܂��B
�@Date-Time API�ɂ͋�����API�ɂ͂Ȃ����������̃��\�b�h���p�ӂ���Ă��܂��B�����āA�����̂قƂ�ǂ́A���\�b�h���������̓��\�b�h���̍ŏ��̐������iprefix�j�ŏ����̓��e��\���悤�ɂȂ��Ă��邽�߁A���\�b�h�������������ŁA���̃��\�b�h���ǂ̂悤�ȏ���������̂����e�Ղɑz�������悤�ɂȂ��Ă��܂��B
�@����ł́A�����̖��̂��\�������̓��e�ɂ��Č��Ă����܂��傤�B
���\�b�h�� / prefix | static / �C���X�^���X | �T�v |
---|---|---|
now | static | ���s���̓��t�⎞���̏����������C���X�^���X�����郁�\�b�h |
of | static | ���̃��\�b�h�̈����̏�ݒ肳�ꂽ�C���X�^���X�����郁�\�b�h |
�@���̒���now���\�b�h�͈����ɉ����ݒ肵�Ȃ��ƁA���s���Ă���V�X�e���̃^�C���]�[��������s���̓������ݒ肳�ꂽ�C���X�^���X���ݒ肳��A������ZoneId��ݒ肷��ƁA���̃^�C���]�[���ł̓������ݒ肳��܂��B
�@���L�̃T���v���ł̓^�C���]�[���Ȃǂ̏��������Ȃ��V���v���ȓ��t�Ǝ���������LocalDateTime�ɃV�X�e���̃f�t�H���g���i���{���ԁj�ł̌��ݎ�����ݒ肵�����̂ƃ��T���[���X�ł̌��ݎ�����ݒ肵�����̂����Ă��܂��B����LocalDateTime���̂̓^�C���]�[���̏��͎����܂��A�ݒ肳�ꂽ���t�Ǝ�����now���\�b�h�Ŏw�肵���^�C���]�[���̂��̂��ݒ肳��Ă��邱�Ƃɒ��ڂ��Ă��������B
// ���s���̃f�t�H���g LocalDateTime localDateTime1 = LocalDateTime.now(); System.out.println("localDateTime1=" + localDateTime1); // �^�C���]�[���ݒ� LocalDateTime localDateTime2 = LocalDateTime.now(ZoneId.of("America/Los_Angeles")); System.out.println("localDateTime2=" + localDateTime2);
localDateTime1=2014-11-16T14:07:54.675 localDateTime2=2014-11-15T21:07:54.691
�@�܂��A������Clock�N���X��n��now���\�b�h������܂��B����Clock�͎��s���Ŏg���Ă��鎞�v�̑���ɁA�C�ӂ̎��v��ݒ�ł���N���X�ł��B����Clock�ɂ͎��s���̃f�t�H���g�̎��v��ݒ�ł���̂͂������A����̃^�C���]�[���̎��v�����̌Œ莞����ݒ�\�ł��B�����āA���̐����𗘗p���ăe�X�g���ȈՉ��ł��܂��B
�@�Ⴆ�A���܂��܂ȍ��Ŏ��s����Ă���A�v���P�[�V�����̏ꍇ�A���s���Ă���ꏊ�ł̎��v�����ݎ����Ƃ��Ďg���Ă���Ƃ��܂��B�����ŁA�J�����ꂩ�炳�܂��܂ȃ^�C���]�[���ł̃e�X�g������ꍇ�ɁA�ǂ��̃^�C���]�[���̌��ݎ��������A�v�����ŊȒP�ɕς����Ȃ��ƁA���s���̎��v��ς��ăe�X�g���s���Ȃǂ��Ȃ��Ă͂����܂���B
�@������Clock���g���Ă���ꍇ�A�ʏ펞��Clock�Ɏ��s���̃f�t�H���g�̎��v��ݒ肵�Ă����A�e�X�g�̍ۂ̓e�X�g�Ώۂ̃^�C���]�[���ɕς���Clock��ݒ肷�邱�ƂŁA�ʂ̒n��ł̃e�X�g���V�~�����[�V�����ł��܂��B�܂��A����̎��Ԃł̃C�x���g���e�X�g����ꍇ�AClock�ɕʂ̎�����ݒ肷�邱�Ƃɂ�����̎��Ԃł̃e�X�g���\�ł��B
�@����ł́AClock�������ɂ��ēn����now���\�b�h���ǂ̂悤�ɂȂ�̂����Ă݂܂��傤�B
// �V�X�e���̃f�t�H���g Clock clock = Clock.systemDefaultZone(); LocalDateTime localDateTime1 = LocalDateTime.now(clock); System.out.println("localDateTime1=" + localDateTime1); Thread.sleep(1000); // 1�b�قǑ҂� // ����Clock�̃C���X�^���X���g���Ă��Ă�fixed���\�b�h�Ŏ��Ԃ̌Œ艻������Ă��Ȃ��ꍇ�A���Ԃ͐i�݂܂� LocalDateTime localDateTime2 = LocalDateTime.now(clock); System.out.println("localDateTime2=" + localDateTime2); Thread.sleep(1000); // 1�b�قǑ҂� // �^�C���]�[���iZoneId�j���w�肵�����v�B�}�V���̃^�C���]�[���łȂ��^�C���]�[�����w�肷��ꍇ�Ɏg���܂��B Clock zonedClock = Clock.system(ZoneId.of("America/Los_Angeles")); //�w�肵���^�C���]�[���ł̌��ݎ������擾���܂� LocalDateTime zonedCllockLocalDateTime = LocalDateTime.now(zonedClock); System.out.println("zonedCllockLocalDateTime =" + zonedCllockLocalDateTime); Thread.sleep(1000); // 1�b�قǑ҂� // UTC����̎����i�I�t�Z�b�g�j���w�肵�����v�B Clock offsetClock = Clock.offset(clock, Duration.ofHours(8)); //�w�肵���I�t�Z�b�g�ł̌��ݎ������擾���܂� LocalDateTime offsetClockLocalDateTime = LocalDateTime.now(offsetClock); System.out.println("offsetClockLocalDateTime =" + offsetClockLocalDateTime); Thread.sleep(1000); // 1�b�قǑ҂� // fixed���\�b�h�œ���̎��Ԃ��w�肵���ꍇ�i�����͌Œ肳��܂��j Instant instant = Instant.parse("2014-01-01T00:00:00Z"); Clock fixedClock = Clock.fixed(instant, ZoneId.systemDefault()); // ���{�ł�+09:00�̎���������܂��B LocalDateTime fixedClockLocalDateTime1 = LocalDateTime.now(fixedClock); System.out.println("fixedClockLocalDateTime1=" + fixedClockLocalDateTime1); Thread.sleep(1000); // 1�b�قǑ҂� // fixedClock �͌Œ�̂��̂Ȃ̂œ��������ɂȂ�܂� LocalDateTime fixedClockLocalDateTime2 = LocalDateTime.now(clock); System.out.println("fixedClockLocalDateTime2=" + fixedClockLocalDateTime2);
localDateTime1=2014-11-27T09:38:34.078 localDateTime2=2014-11-27T09:38:35.078 zonedClockLocalDateTime=2014-11-26T16:38:36.084 offsetClockLocalDateTime=2014-11-27T00:38:37.267 fixedClockLocalDateTime1=2014-01-01T09:00 fixedClockLocalDateTime2=2014-01-01T09:00
�@���ۂɉғ�����V�X�e����Clock���g���ꍇ�́A�Ⴆ�Έ��Clock�������Ɏg����now���\�b�h���Ăяo����悤�ɂ��Ă����A���������ɊO���t�@�C���Ȃǂł���Clock���ȒP�ɕς�����d�g�݂�p�ӂ��Ă����ƁA���ݎ�����ς��ĊȒP�Ƀe�X�g���s����悤�ɂȂ�܂��B
Copyright © ITmedia, Inc. All Rights Reserved.