对于想了解在Java中将时间戳UTC转换为PST的读者,本文将是一篇不可错过的文章,我们将详细介绍java把时间戳转换成具体的时间的格式,并且为您提供关于C#获取utc时间,以及utcdatetime
对于想了解在 Java 中将时间戳 UTC 转换为 PST的读者,本文将是一篇不可错过的文章,我们将详细介绍java把时间戳转换成具体的时间的格式,并且为您提供关于C# 获取 utc 时间,以及 utc datetime 互相转化、Http 请求获取 UTC+0 日期而不是 UTC+x 存储在数据库中、JAVA 将本地时间 (GMT+8) 转换为 UTC 时间、JavaScript Chrome 控制台 - 即使 Chrome 传感器位置初始化为马里兰州巴尔的摩 (UTC-5),日期偏移命令也会返回 UTC-8的有价值信息。
本文目录一览:- 在 Java 中将时间戳 UTC 转换为 PST(java把时间戳转换成具体的时间的格式)
- C# 获取 utc 时间,以及 utc datetime 互相转化
- Http 请求获取 UTC+0 日期而不是 UTC+x 存储在数据库中
- JAVA 将本地时间 (GMT+8) 转换为 UTC 时间
- JavaScript Chrome 控制台 - 即使 Chrome 传感器位置初始化为马里兰州巴尔的摩 (UTC-5),日期偏移命令也会返回 UTC-8
在 Java 中将时间戳 UTC 转换为 PST(java把时间戳转换成具体的时间的格式)
如何解决在 Java 中将时间戳 UTC 转换为 PST
我们有一个要求,其中日期时间数据以 UTC 格式存储在 DB 中。但 UI 要求是以 PST 格式显示。
因此我们需要在 Java Spring 中构建 API 数据的同时操作数据。
来自 DB 的数据采用以下格式:"2020-11-16T11:13:46"
[This is UTC]
我尝试了以下解决方案,但出现错误。
private LocalDateTime convertUtcToPst(LocalDateTime timeStamp) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss" );
LocalDateTime ldt = LocalDateTime.parse(timeStamp,formatter);
ZoneId zoneId = ZoneId.of("America/Los_Angeles" );
zoneddatetime zdt = ldt.atZone(zoneId );
return zdt;
}
有人可以帮我解决这个问题吗? 如果你查看 return 语句,它也显示了一个错误。
解决方法
首先在时间戳中添加UTC,
然后转换它
ZonedDateTime zoned = timestamp.atZone(ZoneId.of("UTC"));
ZonedDateTime converted = zoned.withZoneSameInstant(
ZoneId.of("America/Los_Angeles"));
应用 toLocalDateTime()
获取没有区域信息的日期时间。
注意:formaters 用于将对象(~二进制)转换为字符串,反之亦然,即 format()
(类似 toString()
)用于创建一个 String
表示那个物体; parse()
则相反,尝试从给定的 String
创建一个对象。
你为什么使用格式化程序?您已经有一个 LocalDateTime
private LocalDateTime convertUtcToPst(LocalDateTime timeStamp) {
ZoneId zoneId = ZoneId.of("America/Los_Angeles" );
ZonedDateTime zdt = timeStamp.atZone(zoneId );
return zdt;
}
C# 获取 utc 时间,以及 utc datetime 互相转化
研究一下 UTC 时间获取,如下
DateTime dt = DateTime.UtcNow;
另:
DateTime.UtcNow.ToString();//输出的是0时区的事件,
DateTime.Now.ToString();// 输出的是当前时区的时间,我们中国使用的是东八区的时间,所以差8个小时
以下是互相转换 class 位 utc
class utc
{
public static int ConvertDateTimeInt(System.DateTime time)
{
double intResult = 0;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
intResult = (time - startTime).TotalSeconds ;
return (int)intResult;
}
public static DateTime ConvertIntDatetime(double utc)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
startTime = startTime.AddSeconds(utc);
startTime = startTime.AddHours(8);//转化为北京时间(北京时间=UTC时间+8小时 )
return startTime;
}
//调用方法
// DateTime utcNow = DateTime.Now.ToUniversalTime();
// double utc= ConvertDateTimeInt(utcNow);
// DateTime dtime = ConvertIntDatetime(utc);
}
Http 请求获取 UTC+0 日期而不是 UTC+x 存储在数据库中
如何解决Http 请求获取 UTC+0 日期而不是 UTC+x 存储在数据库中?
我有一个来自包 java.util
的具有 Date 属性的实体。我使用 JPA 将实体存储在 MysqL 中。
Java 实体:
@Entity
public class Foo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private Date date;
}
存储实体方法:
@PostMapping("/foo")
public Foo create(@RequestBody Foo foo) {
foo.setDate(new Date());
return fooRepository.save(foo);
}
请求返回带有 UTC+0 的 Date 属性,但在 MysqL 中,日期是使用本地 UTC。
Http 响应:
{
"id": 95,"date": "2021-05-06T02:38:40.178+00:00",}
sql 语句:
select * from foo;
id | 日期 |
---|---|
95 | 2021-05-05 21:38:40.178000 |
如何获取数据库中存储的相同日期?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
JAVA 将本地时间 (GMT+8) 转换为 UTC 时间
如何解决JAVA 将本地时间 (GMT+8) 转换为 UTC 时间
我想将 datetime-local 从 html 转换为 UTC 时间:
html:
<label>Start Time:</label><input type="datetime-local" name="start_time" />
Java:
request.getParameter("start_time") // print out ex:2021-01-07T10:42
那是当地时间(GMT+8),我想把它转换成UTC字符串时间
例如:转换为 -> 2021-01-07T02:42
我搜索了很多资源,但仍然不知道该怎么做。
解决方法
在 ISO-8601 格式中,您只需将时区偏移附加到字符串,java.time.Instant 就知道如何处理:
Instant result = Instant.parse("2021-01-08T09:36:29+08:00");
System.out.println(result);
打印出来: 2021-01-08T01:36:29Z
java.time 到 ThreeTen Backport
java.time 是现代 Java 日期和时间 API。我建议我们将它用于我们的日期和时间工作。它是 Joda-Time 的继任者,并于 2014 年推出了 Java 1.8。它也已在 ThreeTen Backport 中向后移植到 Java 1.6 和 1.7。使用ThreTen Backport,我们可以:
String startTime = "2021-01-07T10:42";
OffsetDateTime utcTime = LocalDateTime.parse(startTime)
.atZone(ZoneId.systemDefault())
.toOffsetDateTime()
.withOffsetSameInstant(ZoneOffset.UTC);
System.out.println(utcTime);
我在亚洲/上海时区的 Java 1.7 上运行了这段代码(偏移量 +08:00)。然后输出是:
2021-01-07T02:42Z
时间与您想要的一致。它采用 UTC 格式,由尾随 Z
表示。
如果您想明确转换的时区,请使用 ZoneId.systemDefault()
之类的内容代替 ZoneId.of("Asia/Hong_Kong")
。以 region/city 格式提供相关时区 ID 比仅仅提供 GMT 偏移更好。
为什么要使用外部库进行转换? java.time 是面向未来的日期和时间库。一旦您转到 Java 8、9、10、11、12、13、14、15、16 或更高版本,请更改您的导入以使用内置的 java.time,再次测试,您的代码是最现代的。请注意代码如何明确地转换为 UTC,发生的事情并不奇怪。 java.time 非常好用。
链接
- Oracle tutorial: Date Time 解释如何使用 java.time。
- Java Specification Request (JSR) 310,其中首次描述了
java.time
。 - ThreeTen Backport project,将
java.time
向后移植到 Java 6 和 7(JSR-310 的 ThreeTen)。 - Java 8+ APIs available through desugaring
- ThreeTenABP,ThreeTen Backport 的 Android 版
- Question: How to use ThreeTenABP in Android Project,非常详尽的解释。
- Wikipedia article: ISO 8601
JavaScript Chrome 控制台 - 即使 Chrome 传感器位置初始化为马里兰州巴尔的摩 (UTC-5),日期偏移命令也会返回 UTC-8
如何解决JavaScript Chrome 控制台 - 即使 Chrome 传感器位置初始化为马里兰州巴尔的摩 (UTC-5),日期偏移命令也会返回 UTC-8
如果我做的一切都正确,当我将 Chrome 开发工具初始化到巴尔的摩,马里兰州,纬度 39.3904,经度 -76.6122(美国/东部时区 ID)区域设置 - en_US 时,我会收到错误的 -8 偏移量。
如何使用这两个命令使我的配置工作产生 -5 的偏移量?
offset = new Date().getTimezoneOffset(); //positive minutes
offset/=-60; //negative hours
今天的关于在 Java 中将时间戳 UTC 转换为 PST和java把时间戳转换成具体的时间的格式的分享已经结束,谢谢您的关注,如果想了解更多关于C# 获取 utc 时间,以及 utc datetime 互相转化、Http 请求获取 UTC+0 日期而不是 UTC+x 存储在数据库中、JAVA 将本地时间 (GMT+8) 转换为 UTC 时间、JavaScript Chrome 控制台 - 即使 Chrome 传感器位置初始化为马里兰州巴尔的摩 (UTC-5),日期偏移命令也会返回 UTC-8的相关知识,请在本站进行查询。
本文标签: