java - 日历在不应该使用夏令时的情况下使用
问题描述
我正在制作的一个程序是将十六进制值转换为十进制。十进制值表示自 2010 年 1 月 1 日以来的时间(以秒为单位)。我正在使用日历方法将秒数添加到日期以获得最终日期/时间。当我调用 .useDaylightTime() 它返回 false 但我得到的值是它是否使用 DST。我忽略了什么吗?
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import java.util.TimeZone;
public class timeSince {
private static final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String hex = input.nextLine();
TimeZone zone = TimeZone.getTimeZone("EST");
System.out.println(zone.useDaylightTime());
Calendar cal = Calendar.getInstance(zone);
cal.set(2010, 0, 1, 0, 0, 0);
cal.add(Calendar.SECOND, Integer.parseInt(hex,16));
Date newDate = cal.getTime();
System.out.println(dateFormat.format(newDate));
}
}
解决方案
用于格式化的时区在 DateFormat 上设置。
dateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
System.out.println(dateFormat.format(newDate));
推荐阅读
- java - 从 AWS Lambda 连接到 MongoDB Atlas 需要很长时间
- django - 为什么我的 Django 密码没有被加密?
- swift - 如何使按钮正确缩放我的图像
- c++ - 有没有办法从 C++ 目录中找到最后修改的文件?
- sql - 如何以文本方式指示 SQL SELECT 中没有结果?
- javascript - 'fetch' Response.status 和 Response.ok,移动浏览器是否支持它们?
- wsdl - WSDLException faultCode=PARSER_ERROR - 使用 schemaLocation 时:MyService?xsd=myschema.xsd
- c - 我写了一个函数,它接受一个字符串,并将每个单词的最后一个字符大写,其余的小写。它有什么问题?
- php - 有没有办法在使用 PDO 提交事务之前读取插入的行?
- image-processing - ValueError:无法将输入数组从形状(128,128,1)广播到形状(128,128,3,1)