diff --git a/gradle.properties b/gradle.properties index 83a4a170..8e78731d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ netbeans.org-netbeans-modules-javascript2-requirejs.enabled=true release_version_major=2.2 -release_version_minor=13.6 +release_version_minor=13.7 diff --git a/release/YaguraExtender-v2.2.jar b/release/YaguraExtender-v2.2.jar index a7cde2a3..7b5af878 100644 Binary files a/release/YaguraExtender-v2.2.jar and b/release/YaguraExtender-v2.2.jar differ diff --git a/src/main/java/extend/util/external/TransUtil.java b/src/main/java/extend/util/external/TransUtil.java index 1a0bfb7c..5efe2527 100644 --- a/src/main/java/extend/util/external/TransUtil.java +++ b/src/main/java/extend/util/external/TransUtil.java @@ -17,6 +17,9 @@ import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -2399,20 +2402,32 @@ public static char getOrderdChar(int ord) { /* * DateへはZoneがデフォルトのZoneになるため強制的に変更 */ - public static Date toZoneWithDate(LocalDateTime ldtm) { - GregorianCalendar cal = new GregorianCalendar(ldtm.getYear(), ldtm.getMonthValue(), ldtm.getDayOfMonth(), ldtm.getHour(), ldtm.getMinute(), ldtm.getSecond()); + public static Date toZoneWithDate(LocalDateTime ldtm, ZoneId zoneId) { + GregorianCalendar cal = new GregorianCalendar(ldtm.getYear(), ldtm.getMonthValue()-1, ldtm.getDayOfMonth(), ldtm.getHour(), ldtm.getMinute(), ldtm.getSecond()); + cal.setTimeZone(TimeZone.getTimeZone(zoneId)); return cal.getTime(); } /* - * DateへはZoneが + * DateへはZoneがデフォルトのZoneになるため強制的に変更 */ - public static LocalDateTime toZoneWithLocalDate(Date date) { +// public static LocalDateTime toZoneWithLocalDate(Date date, ZoneId zoneId) { +// Calendar cal = GregorianCalendar.getInstance(); +// cal.setTimeZone(TimeZone.getTimeZone(zoneId)); +// cal.setTime(date); +// LocalDateTime ldtm = LocalDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)); +// return ldtm; +// } + + /* + * DateへはZoneがデフォルトのZoneになるため強制的に変更 + */ + public static ZonedDateTime toZoneWithZoneDate(Date date, ZoneId zoneId) { Calendar cal = GregorianCalendar.getInstance(); + //cal.setTimeZone(TimeZone.getTimeZone(zoneId)); cal.setTime(date); - LocalDateTime ldtm = LocalDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)); - return ldtm; + ZonedDateTime zdtm = ZonedDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), 0, zoneId); + return zdtm; } - } diff --git a/src/main/java/yagura/view/JTransCoderTab.form b/src/main/java/yagura/view/JTransCoderTab.form index 41983a1a..31873b84 100644 --- a/src/main/java/yagura/view/JTransCoderTab.form +++ b/src/main/java/yagura/view/JTransCoderTab.form @@ -29,7 +29,7 @@ - + @@ -1429,7 +1429,7 @@ - + @@ -1551,7 +1551,7 @@ - + @@ -1698,7 +1698,7 @@ - + @@ -2003,7 +2003,7 @@ - + @@ -2252,7 +2252,7 @@ - + @@ -2446,32 +2446,32 @@ - + - - - - + + + + - - - + + + - + - + @@ -2479,38 +2479,38 @@ - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + - - - - - + + + + + - - - - + + + + - + @@ -2567,7 +2567,7 @@ - + @@ -2609,6 +2609,7 @@ + @@ -2713,7 +2714,7 @@ - + @@ -2840,7 +2841,7 @@ - + diff --git a/src/main/java/yagura/view/JTransCoderTab.java b/src/main/java/yagura/view/JTransCoderTab.java index 917f6df4..94c8917e 100644 --- a/src/main/java/yagura/view/JTransCoderTab.java +++ b/src/main/java/yagura/view/JTransCoderTab.java @@ -119,7 +119,7 @@ public JTransCoderTab() { private org.fife.ui.rtextarea.RTextScrollPane scrollOutputFormat; private org.fife.ui.rsyntaxtextarea.RSyntaxTextArea txtOutputFormat; - private final static DateTimeFormatter SYSTEM_ZONE_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy/MM/dd H:mm:ss zzz"); + private final static DateTimeFormatter SYSTEM_ZONE_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss zzz"); private final static String [] SHORT_ZONEIDS = { "GMT", "ACT", "AET", "AGT", "ART", "AST", "BET", "BST", "CAT", "CNT", "CST", "CTT", "EAT", "ECT", "IET", "IST", "JST", "MIT", "NET", "NST", "PLT", "PNT", "PRT", "PST", "SST", "VST", "EST", "MST", "HST" @@ -130,26 +130,28 @@ public JTransCoderTab() { private final JWTTokenDecoderTab jwtTokenDecoderTab = new JWTTokenDecoderTab(); final FocusListener FIRE_FOCUS = new FocusListener() { - @Override - public void focusGained(FocusEvent e) { - } + @Override + public void focusGained(FocusEvent e) { + } - @Override - public void focusLost(FocusEvent e) { - ZonedDateTime cdtm = getConverterZoneDateTime(); - long java_value = cdtm.toInstant().toEpochMilli(); - long unix_value = java_value / 1000L; + @Override + public void focusLost(FocusEvent e) { + updateZoneDateTime(); + } + }; - ZonedDateTime zdtm = ZonedDateTime.ofInstant(Instant.ofEpochMilli(java_value), ZoneId.systemDefault()); - setSystemZoneDate(zdtm.toInstant()); + private void updateZoneDateTime() { + ZonedDateTime cdtm = getConverterZoneDateTime(); + long java_value = cdtm.toInstant().toEpochMilli(); + long unix_value = java_value / 1000L; - txtUnixtime.setValue(unix_value); - txtJavaSerial.setValue(java_value); - BigDecimal excel_serial = TransUtil.toExcelSerial(unix_value); - txtExcelSerial.setValue(excel_serial.doubleValue()); + this.txtUnixtime.setValue(unix_value); + this.txtJavaSerial.setValue(java_value); + BigDecimal excel_serial = TransUtil.toExcelSerial(unix_value); + this.txtExcelSerial.setValue(excel_serial.doubleValue()); - } - }; + this.setSystemZoneDate(cdtm); + } private void customizeComponents() { @@ -332,14 +334,14 @@ private Date getConverterDateTime() { private void setConverterZoneDateTime(long java_serial_time) { ZoneId zoneId = getSelectZoneId(); LocalDateTime ldtm = LocalDateTime.ofInstant(Instant.ofEpochMilli(java_serial_time), zoneId); - this.spnZoneDateTime.setValue(TransUtil.toZoneWithDate(ldtm)); + this.spnZoneDateTime.setValue(TransUtil.toZoneWithDate(ldtm, zoneId)); } private ZonedDateTime getConverterZoneDateTime() { Date date = this.getConverterDateTime(); - LocalDateTime ldtm = TransUtil.toZoneWithLocalDate(date); ZoneId zoneId = getSelectZoneId(); - return ldtm.atZone(zoneId); + ZonedDateTime zdtm = TransUtil.toZoneWithZoneDate(date, zoneId); + return zdtm; } private void setGeneraterDateStart(Date value) { @@ -1450,7 +1452,7 @@ public void keyPressed(java.awt.event.KeyEvent evt) { .addComponent(spnNumStep, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spnNumStart, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spnNumEnd, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(1520, Short.MAX_VALUE)) + .addContainerGap(1526, Short.MAX_VALUE)) ); pnlNumbersLayout.setVerticalGroup( pnlNumbersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1544,7 +1546,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGap(18, 18, 18) .addComponent(cmbDateUnit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(spnDateEnd, javax.swing.GroupLayout.PREFERRED_SIZE, 257, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(1467, Short.MAX_VALUE)) + .addContainerGap(1473, Short.MAX_VALUE)) ); pnlDateLayout.setVerticalGroup( pnlDateLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1675,7 +1677,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(pnlStringLength, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlCount, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap(1467, Short.MAX_VALUE)) + .addContainerGap(1473, Short.MAX_VALUE)) ); tabRandomLayout.setVerticalGroup( tabRandomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1853,7 +1855,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(tabBaseConverterLayout.createSequentialGroup() .addComponent(lblBin, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtBin, javax.swing.GroupLayout.DEFAULT_SIZE, 1907, Short.MAX_VALUE)) + .addComponent(txtBin, javax.swing.GroupLayout.DEFAULT_SIZE, 1913, Short.MAX_VALUE)) .addGroup(tabBaseConverterLayout.createSequentialGroup() .addComponent(lblHex, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -2027,7 +2029,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(txtDec4, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblIPValid, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(1422, Short.MAX_VALUE)) + .addContainerGap(1428, Short.MAX_VALUE)) ); tabIPFormatConverterLayout.setVerticalGroup( tabIPFormatConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -2103,7 +2105,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { spnZoneDateTime.setModel(new javax.swing.SpinnerDateModel()); spnZoneDateTime.setToolTipText(""); - spnZoneDateTime.setEditor(new javax.swing.JSpinner.DateEditor(spnZoneDateTime, "yyyy/MM/dd H:mm:ss")); + spnZoneDateTime.setEditor(new javax.swing.JSpinner.DateEditor(spnZoneDateTime, "yyyy/MM/dd HH:mm:ss")); spnZoneDateTime.setMinimumSize(new java.awt.Dimension(180, 22)); spnZoneDateTime.setName(""); // NOI18N spnZoneDateTime.setPreferredSize(new java.awt.Dimension(200, 22)); @@ -2126,6 +2128,11 @@ public void focusLost(java.awt.event.FocusEvent evt) { txtExcelSerialFocusLost(evt); } }); + txtExcelSerial.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + txtExcelSerialActionPerformed(evt); + } + }); txtJavaSerial.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0")))); txtJavaSerial.setHorizontalAlignment(javax.swing.JTextField.TRAILING); @@ -2172,57 +2179,57 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(tabDateConverterLayout.createSequentialGroup() .addContainerGap() .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblJavaSerial, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblZoneDate, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblUnixtime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblExcelSerial, javax.swing.GroupLayout.DEFAULT_SIZE, 425, Short.MAX_VALUE) - .addComponent(lblDate, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(lblExcelSerial, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblJavaSerial, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblZoneDate, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblDate, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblUnixtime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtUnixtime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(txtJavaSerial, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtExcelSerial, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(spnZoneDateTime, javax.swing.GroupLayout.DEFAULT_SIZE, 638, Short.MAX_VALUE) - .addComponent(txtSystemZoneDate, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(txtSystemZoneDate, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(spnZoneDateTime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(txtUnixtime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(txtExcelSerial, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btnUnixtimeCopy, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnJavaSerialCopy, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnExcelSerial, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cmbTimezone, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnZoneDateCopy, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(716, 716, 716)) + .addComponent(btnZoneDateCopy, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnExcelSerial, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(1039, 1039, 1039)) ); tabDateConverterLayout.setVerticalGroup( tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(tabDateConverterLayout.createSequentialGroup() .addGap(13, 13, 13) - .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(spnZoneDateTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cmbTimezone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblZoneDate)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(spnZoneDateTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblZoneDate))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(lblDate) - .addComponent(btnZoneDateCopy) - .addComponent(txtSystemZoneDate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSystemZoneDate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnZoneDateCopy)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnUnixtimeCopy) - .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblUnixtime) - .addComponent(txtUnixtime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGap(6, 6, 6) - .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(lblUnixtime) + .addComponent(txtUnixtime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnUnixtimeCopy)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(lblJavaSerial) - .addComponent(btnJavaSerialCopy) - .addComponent(txtJavaSerial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtJavaSerial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnJavaSerialCopy)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(tabDateConverterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(lblExcelSerial) - .addComponent(btnExcelSerial) - .addComponent(txtExcelSerial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(495, Short.MAX_VALUE)) + .addComponent(txtExcelSerial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnExcelSerial)) + .addContainerGap(493, Short.MAX_VALUE)) ); tabbetConverter.addTab("Date", tabDateConverter); @@ -2288,7 +2295,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(btnStoreTypeJKS, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnStoreTypePKCS12))) - .addContainerGap(1694, Short.MAX_VALUE)) + .addContainerGap(1700, Short.MAX_VALUE)) ); pnlCertificateLayout.setVerticalGroup( pnlCertificateLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -2375,7 +2382,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnCalc) .addGap(0, 0, Short.MAX_VALUE)) - .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 1095, Short.MAX_VALUE)) + .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 1101, Short.MAX_VALUE)) .addGap(671, 671, 671)) .addGroup(tabTokenStrengthLayout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 558, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -3215,13 +3222,18 @@ private void btnExcelSerialActionPerformed(java.awt.event.ActionEvent evt) {//GE }//GEN-LAST:event_btnExcelSerialActionPerformed private void cmbTimezoneItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cmbTimezoneItemStateChanged - Date date = this.getConverterDateTime(); - this.setSystemZoneDate(date.toInstant()); +// Date date = this.getConverterDateTime(); +// this.setSystemZoneDate(date.toInstant()); + this.updateZoneDateTime(); }//GEN-LAST:event_cmbTimezoneItemStateChanged private void setSystemZoneDate(Instant instant) { ZonedDateTime zdtm = ZonedDateTime.ofInstant(instant, ZoneOffset.UTC); - this.txtSystemZoneDate.setText(SYSTEM_ZONE_DATE_FORMATTER.format(zdtm.withZoneSameInstant(ZoneId.systemDefault()))); + this.txtSystemZoneDate.setText(SYSTEM_ZONE_DATE_FORMATTER.withZone(ZoneId.systemDefault()).format(zdtm)); + } + + private void setSystemZoneDate(ZonedDateTime zdtm) { + this.txtSystemZoneDate.setText(SYSTEM_ZONE_DATE_FORMATTER.withZone(ZoneId.systemDefault()).format(zdtm)); } private void spnDateStartStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnDateStartStateChanged @@ -3293,7 +3305,6 @@ private void txtUnixtimeFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:ev ZonedDateTime zdtm = ZonedDateTime.ofInstant(Instant.ofEpochMilli(java_value), ZoneId.systemDefault()); this.setSystemZoneDate(zdtm.toInstant()); - this.setConverterZoneDateTime(java_value); } catch (ParseException ex) { @@ -3350,6 +3361,10 @@ private void rdoUnicodeHex2ActionPerformed(java.awt.event.ActionEvent evt) {//GE // TODO add your handling code here: }//GEN-LAST:event_rdoUnicodeHex2ActionPerformed + private void txtExcelSerialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtExcelSerialActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_txtExcelSerialActionPerformed + private final java.awt.event.ActionListener historyActionPerformed = new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { diff --git a/src/test/java/extend/util/external/TransUtilTest.java b/src/test/java/extend/util/external/TransUtilTest.java index 34477cdf..e23cb5ad 100644 --- a/src/test/java/extend/util/external/TransUtilTest.java +++ b/src/test/java/extend/util/external/TransUtilTest.java @@ -1,7 +1,6 @@ package extend.util.external; import extend.util.external.TransUtil.EncodePattern; -import static extend.util.external.TransUtil.PTN_ENCODE_ALPHANUM; import extension.helpers.ConvertUtil; import extension.helpers.HttpUtil; import extension.helpers.MatchUtil; @@ -28,8 +27,10 @@ import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import static java.time.temporal.TemporalQueries.zoneId; import java.util.Calendar; import java.util.Date; +import java.util.GregorianCalendar; import java.util.TimeZone; /** @@ -1047,6 +1048,7 @@ public void testZoneDateTime() { @Test public void testCovertDate() { + System.out.println("testCovertDate"); long unix_time = 1655470800L; LocalDateTime udtm = LocalDateTime.ofInstant(Instant.ofEpochSecond(unix_time), ZoneOffset.UTC); System.out.println("LocalDateTime(UTC): " + udtm); @@ -1055,7 +1057,7 @@ public void testCovertDate() { System.out.println("LocalDateTime(JST): " + ldtm.getYear() + "-" + ldtm.getMonthValue() + "-" + ldtm.getDayOfMonth() + " " + ldtm.getHour() + ":" + ldtm.getMinute() + ":" + ldtm.getSecond()); Date dateLocal = Date.from(ldtm.toInstant(ZoneOffset.UTC)); System.out.println("LocalDateTime(Z): " + dateLocal); - System.out.println("TransUtil.toZoneWithDate: " + TransUtil.toZoneWithDate(ldtm)); + System.out.println("TransUtil.toZoneWithDate: " + TransUtil.toZoneWithDate(ldtm, ZoneOffset.UTC)); ZonedDateTime zdtm = ZonedDateTime.ofInstant(Instant.ofEpochSecond(unix_time), ZoneOffset.UTC); System.out.println("ZoneDateTime: " + zdtm); Date dateZone = Date.from(ldtm.toInstant(ZoneOffset.UTC)); @@ -1074,4 +1076,18 @@ public void testCovertDate() { System.out.println("Calendar.get(z): " + cl.get(Calendar.YEAR) + "-" + clz.get(Calendar.MONTH) + "-" + clz.get(Calendar.DAY_OF_MONTH) + " " + clz.get(Calendar.HOUR) + ":" + clz.get(Calendar.MINUTE) + ":" + clz.get(Calendar.SECOND)); } + @Test + public void testToZoneWithDate() { + System.out.println("testToZoneWithDate"); + long unix_time = 1665835871; + // 2022/10/15 21:11:11 Asia/Tokyo + // 2022/10/15 12:11:11 UTC + Date date = new Date(unix_time * 1000); + System.out.println("date:" + date.toString()); + ZonedDateTime zdtm = TransUtil.toZoneWithZoneDate(date, ZoneOffset.UTC); + System.out.println("zdtm:" + zdtm); + + } + } +