- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用全名时区将时间从时区转换为另一个时区。下面是我用过的java api。
TimeZone.setDefault(TimeZone.getTimeZone("Africa/Algiers"));
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String dateInString = "09:44:00";
TimeZone tzGMT01 = TimeZone.getTimeZone("Africa/Algiers");
formatter.setTimeZone(tzGMT01);
Date dateInAmerica = formatter.parse(dateInString);
String fromInput = formatter.format(dateInAmerica);
TimeZone tzGMT03 = TimeZone.getTimeZone("Asia/Bahrain");
formatter.setTimeZone(tzGMT03);
String toInput = formatter.format(dateInAmerica);
Time ts = java.sql.Time.valueOf(toInput);
将 09:44:00
的时间值转换为“亚洲/巴林”时间的预期输出为 11:44:00
。但是输出是 13:44:00
。
有人可以指导上面的陈述中有什么问题吗?
最佳答案
您的问题是 Java Date
是完整的日期值,而不仅仅是时间值。当您不提供年/月/日值时,它们默认为 1970/01/01。
1970 年的世界已经不一样了。Algiers正在使用 UTC+0 时区,并且 Bahrain以前使用的是 UTC+4,这与今天不同,阿尔及尔使用的是 UTC+1 时区,而巴林使用的是 UTC+3。
忽略日期也会导致采用夏令时的时区出现问题。
如您所见,日期很重要。
这是显示它的代码:
TimeZone tzAlgiers = TimeZone.getTimeZone("Africa/Algiers");
TimeZone tzBahrain = TimeZone.getTimeZone("Asia/Bahrain");
SimpleDateFormat fmtTimeAlgiers = new SimpleDateFormat("HH:mm:ss");
fmtTimeAlgiers.setTimeZone(tzAlgiers);
SimpleDateFormat fmtDatetimeAlgiers = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
fmtDatetimeAlgiers.setTimeZone(tzAlgiers);
SimpleDateFormat fmtFullAlgiers = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z (Z)");
fmtFullAlgiers.setTimeZone(tzAlgiers);
SimpleDateFormat fmtFullBahrain = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z (Z)");
fmtFullBahrain.setTimeZone(tzBahrain);
Date date1970 = fmtTimeAlgiers.parse("09:44:00");
System.out.println(fmtTimeAlgiers.format(date1970) + " " + tzAlgiers.getID());
System.out.println(fmtFullAlgiers.format(date1970) + " " + tzAlgiers.getID());
System.out.println(fmtFullBahrain.format(date1970) + " " + tzBahrain.getID());
System.out.println();
Date date2016 = fmtDatetimeAlgiers.parse("2016-01-01 09:44:00");
System.out.println(fmtDatetimeAlgiers.format(date2016) + " " + tzAlgiers.getID());
System.out.println(fmtFullAlgiers.format(date2016) + " " + tzAlgiers.getID());
System.out.println(fmtFullBahrain.format(date2016) + " " + tzBahrain.getID());
System.out.println();
输出
09:44:00 Africa/Algiers
1970-01-01 09:44:00 CET (+0000) Africa/Algiers
1970-01-01 13:44:00 AST (+0400) Asia/Bahrain
2016-01-01 09:44:00 Africa/Algiers
2016-01-01 09:44:00 CET (+0100) Africa/Algiers
2016-01-01 11:44:00 AST (+0300) Asia/Bahrain
1970 年的时区名称 CET
和 AST
实际上是错误的。阿尔及尔使用的是 GMT
,而巴林使用的是 GST
(海湾标准时间)。
关于java - FullName Timezone 的时间不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903428/
有人可以解释一下吗: 我们有两个相似的代码。它们的功能是相同的。但在第一个代码中我们有一个正常的结果,而在下一个代码中 - 非常奇怪。 我不明白为什么结果不同,因为我们只更改了值拆分的变体 - 从第一
我将在数据库字段中存储 Type.FullName,即“System.String”。将存储的类型名称是任意的,不受我的控制。类型名称的最大长度是多少? 编辑:我不会使用此信息来创建类型的实例,它仅用
我正在尝试使用全名时区将时间从时区转换为另一个时区。下面是我用过的java api。 TimeZone.setDefault(TimeZone.getTimeZone("Africa/Algi
当我在文件上使用 e.Fullname 或 e.Name 时,它会给我全名 + 扩展名,但我只想要文件名而不用像:名字后面的“.txt”。 如何只显示文件名而不显示其后的扩展名?是否有特定的代码? 我
现在我使用 devise 并且有两个字段。 fname 和 lname。 我希望能够将 full_name 字段放入用户模型。然后用户模型将获取 full_name 字段并通过用空格分隔来提取 fna
我的目标是检查 DirectoryInfo.FullName 是否是特殊文件夹之一。 这是我为此所做的事情(检查每个特殊文件夹的directoryInfo.FullName,如果它们相等):
当前修复此 MySQL 异常时遇到问题。我检查了几个与我类似的问题,但无法弄清楚为什么我的 FullName 列不被接受输入。我使用 MySQL Workbench 手动执行了 CALL 语句,它工作
你好:)这是我的代码: myView.m 从 xib 加载 - (void)loadData { self.players = [model.dbManager.playersDbManage
我最近需要为任意类型构建 C# 特定名称(必须始终包含 global::说明符)并且遇到了以下问题: // 1 - value: System.String[,,,][,,][,] string un
我最近需要为任意类型构建 C# 特定名称(必须始终包含 global::说明符)并且遇到了以下问题: // 1 - value: System.String[,,,][,,][,] string un
我在下面有一个 powershell 脚本,它需要一个配置文件并删除与正则表达式匹配的 x 天之前的文件。 配置文件: path,pattern,days,testrun C:\logs\,^data
我有一个Google驱动器文件夹,有时不同步。 Google(或其他人)将在目录/文件名后附加(1)。然后它将删除原始目录,我将有一堆名为“xxx(1)”的文件夹和文件。 我一直在尝试编写一个Powe
我正在尝试解决需要这些周长的问题: “字符串变量 fullName 包含以下两种格式之一的名称:姓氏、名字(逗号后跟空格),或名字 姓氏(单个空白)将名字提取到字符串变量firstName中,将姓氏提
我正在使用 DotNetOpenAuth 库来处理 Google(仅)OpenId。我正在毫无问题地检索电子邮件。但我无法获取 FullName,它始终为 null。 request.AddExten
需要验证全名(名字/姓氏 - 1 个输入字段)。我是这个领域的新手,无法制定正确的语法也许也适用于正则表达式
当我访问 FileSystemInfo 对象的 Fullname 属性时,我的硬盘驱动器上有一些文件会抛出 PathTooLongException。有什么办法解决这个问题(不包括重命名不是一个选项的
我正在尝试组合一个 Azure 函数以在 HTTP 触发器上运行。我的问题是,每当我运行该函数时,我都会从六个模块中收到一个关键错误异常。导入 pandas 时似乎会调用它,我不明白为什么。这是回溯:
我正在尝试组合一个 Azure 函数以在 HTTP 触发器上运行。我的问题是,每当我运行该函数时,我都会从六个模块中收到一个关键错误异常。导入 pandas 时似乎会调用它,我不明白为什么。这是回溯:
我有一个注册/登录方法(来自 PFFacebookUtilsV4),当新的 Facebook 用户登录时,它可以成功地将新的 PFUser 对象添加到我的 Parse 数据库中。在该方法中,我创建了
我正在上我的第一个 CS 课,但我无法编译它。我查看了我教授的笔记、讲座和示例,但我输入的内容似乎并不重要,这是一个错误。我收到 38 个错误,而且只有 25 行代码!许多错误没有任何意义,例如,“e
我是一名优秀的程序员,十分优秀!