如何将 java.time.Instant 格式化为本地时区的字符串?

2024-01-19

如何格式化javax.time.Instant http://threeten.sourceforge.net/apidocs-2011-01-07/javax/time/Instant.html作为本地时区的字符串?以下是本地翻译的Instant to UTC http://en.wikipedia.org/wiki/Coordinated_Universal_Time,而不是我所期望的本地时区。删除呼叫toLocalDateTime() http://threeten.sourceforge.net/apidocs/javax/time/calendar/ZonedDateTime.html#toLocalDateTime%28%29做同样的事情。我怎样才能得到当地时间?

public String getDateTimeString( final Instant instant )
{
    checkNotNull( instant );
    DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
    DateTimeFormatter formatter = builder.appendPattern( "yyyyMMddHHmmss" ).toFormatter();
    return formatter.print( ZonedDateTime.ofInstant( instant, TimeZone.UTC ).toLocalDateTime() );
}

注意:我们使用的是旧版本0.6.3 http://sourceforge.net/projects/threeten/files/threeten/0.6.3/jsr-310-ri-0.6.3.jar/download of the JSR-310 http://sourceforge.net/apps/mediawiki/threeten/index.php?title=ThreeTen参考实现。


用即将完成的 JDK1.8 版本回答这个问题

DateTimeFormatter formatter =
  DateTimeFormatter.ofPattern("yyyyMMddHHmmss").withZone(ZoneId.systemDefault());
return formatter.format(instant);

关键是Instant没有任何时区信息。因此,无法使用任何基于日期/时间字段的模式对其进行格式化,例如“yyyyMMddHHmmss”。通过指定区域DateTimeFormatter,在格式化时将瞬间转换为指定的时区,使其能够正确输出。

另一种方法是转换为ZonedDateTime:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
return formatter.format(ZonedDateTime.ofInstant(instant, ZoneId.systemDefault()));

两种方法是等效的,但是如果我的数据对象是Instant.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 java.time.Instant 格式化为本地时区的字符串? 的相关文章

  • 在 Spark 中写入 JSON 时保留具有空值的键

    我正在尝试使用 Spark 编写 JSON 文件 有一些键有null作为价值 这些在中显示得很好DataSet 但是当我写入文件时 密钥会丢失 我如何确保它们被保留 写入文件的代码 ddp coalesce 20 write mode ov
  • 序列化 ArrayList

    我正在尝试编写一个 Android 游戏 即使用户想要返回主菜单或者活动被系统终止 我也希望能够暂停游戏 onSaveInstanceState 似乎并没有给我很大的控制权来决定何时可以读回捆绑包 而且据我所知 捆绑包仅在短时间内有效 所以
  • 如何创建仅接受字母数字字符的正则表达式? [复制]

    这个问题在这里已经有答案了 可能的重复 字母数字和下划线的正则表达式 https stackoverflow com questions 336210 regular expression for alphanumeric and unde
  • 将更改(永久)保存在数组列表中?

    那可能吗 例如 用户将新的项目 元素添加到数组列表 缓冲读取器进程 中 并且肯定会发生更改 我的问题是 即使用户多次更改数组列表 它也可能会永久存在 即使他们关闭程序并再次打开它 它也会一直存在 注意 不使用 txt 很抱歉问这样的问题 但
  • 如何在 Java 中复制对象?

    考虑下面的代码 DummyBean dum new DummyBean dum setDummy foo System out println dum getDummy prints foo DummyBean dumtwo dum Sys
  • 如何防止我的 servlet 被其他网站调用

    好的 我有一个像这样的简单的 servlet public class SimpleServlet extends HttpServlet public void doPost HttpServletRequest req HttpServ
  • 字符串 a == 字符串 b 的规则 [重复]

    这个问题在这里已经有答案了 我试图了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是什么 例如这个片段 public static void main String hi String s1 lol String s2 lol S
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 相对重力

    我最近开始使用jMonkey引擎 这非常好 但我在尝试实现相对重力时陷入了困境 我想让行星彼此围绕轨道运行 不一定是完美的圆形轨道 取决于速度 所以每个对象都应该影响其他对象 我现在拥有的 关闭全球重力 bulletAppState get
  • 是否有适用于 Java 的 CalDAV 客户端库? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 CalDAV 协议与我的日
  • 在休眠搜索中使用现有分析器AnalyzerDiscriminator

    Entity Indexed AnalyzerDefs AnalyzerDef name en tokenizer TokenizerDef factory StandardTokenizerFactory class filters To
  • java内存不足然后退出

    我有一个必须分析大文件的软件 限制输入或提供无限内存都不是一个选择 所以我必须忍受飞行的 OOME 因为 OOME 只杀死线程 所以我的软件运行在一些糟糕的状态 从外面看一切都很好 因为进程正在运行 但在内部却是脑死亡 我想拔掉它的插头 但
  • org.apache.poi 中的异常

    我试图编写一个可以读取和写入的程序 xlsx文件中 下面提供的代码旨在能够编写其第一个 Excel 程序 package excel reader import java io FileOutputStream import java io
  • 用二进制数、常规数字和格雷编码填充矩阵

    我有一个包含 1 s 或 0 s 的矩阵 用于创建二进制数 其宽度为n 对于 n 2 和 n 3 它看起来像 00 000 01 001 10 010 11 011 100 101 110 111 等等 现在我正在使用以下代码来生成它 in
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • Java泛型类型参数中的问号是什么意思? [复制]

    这个问题在这里已经有答案了 这是取自斯坦福解析器附带的一些示例的一小段代码 我已经用 Java 进行了大约 4 年的开发 但从未对这种风格的代码应该表示什么有非常深入的理解 List
  • java.lang.IllegalStateException:FragmentManager 已被销毁

    活动中onResume我称之为 volley request 的方法 它获取项目列表 然后将它们加载到此活动内的 ListFragment 中 当我第一次进入活动时 一切正常 但当我重新进入活动时 ListFragment 为空 并且控制台
  • Java无损保存原始JPEG

    如下所示 我有第一张图像是原始 JPEG 图像 第二张图像用于缓冲图像 然后使用保存http www lac inpe br JIPCookbook 6040 howto compressimages jsp http www lac in
  • 使用 SimpleDateFormat、Java 进行错误的日期解析

    我需要使用日期模式 yyyy MM dd 解析输入字符串中的日期 如果日期采用任何其他格式 则抛出错误 这是我解析日期的代码 private void validateDate throws MyException Date parsedD
  • 如何将元素添加到通用集合

    我想知道如何将专用对象添加到通用集合中 我正在使用以下代码 Collection

随机推荐

  • Angular 6 + Popper.js(无 jQuery)

    我正在尝试设置 Popper js 以使用 Angular 5 无需 bootstrap 或 jquery 我尝试按照这个https github com FezVrasta popper js react vuejs angular an
  • Xcode 4 Cmd+alt+上/下重新映射

    我意识到头文件和实现文件之间的切换已移至 ctrl cmd up down 然而 这非常烦人 因为在我可以用一只手的 3 个手指快速完成之前 箭头键附近没有 Ctrl 按钮 所以我打开首选项发现我可以更改键绑定并尝试按 cmd alt 上
  • 什么时候适合使用引用变量?为什么?您能解释一下实际的语法和位置吗? [复制]

    这个问题在这里已经有答案了 我是 C 的新手 我们最近开始在课堂上探索参考变量 我对它们感到非常困惑 不一定是如何做它们 因为我知道它们会切换变量值 但更多的是沿着为什么开发人员想要做这样的事情 他们完成了什么 它们节省内存吗 他们是否避免
  • 如何在从 v$sql 接收到的 Oracle 查询中查找参数?

    我使用查询 select LAST LOAD TIME ELAPSED TIME MODULE SQL TEXT elasped from v sql WHERE MODULE JDBC Thin Client ORDER BY LAST
  • 将十进制小时转换为小时、分钟和秒

    xslt 1 0 中是否有更优雅的解决方案 我知道 xslt 2 0 有内置函数 我正在获取一个以十进制小时表示的数字 需要将其表示为 HH MM SS 目前我有以下功能正常的
  • 如何使用 VB6 的 Web 服务?

    我需要从 VB6 程序使用外部 Web 服务 如果可能的话 我希望能够在没有 SOAP 工具包的情况下部署我的程序 但这不是必需的 我没有网络服务源 也没有创建它 这是供应商提供的服务 那么 除了 SOAP 工具包之外 使用 VB6 的 W
  • 扩展 MVC3 razor Html.LabelFor 添加 css 类

    我正在尝试将 css 类添加到 EditorTemplate 上的 Html LabelFor Html LabelFor model gt model Name new class myLabel 我的期望例如 label 应该选择 cs
  • BigQuery 写入时数据流作业失败并出现后端错误

    我的工作因最终导入 BigQuery 相关的几个不同错误而失败 我已经运行了 5 次 每次都失败 尽管错误消息有时会有所不同 当我在本地针对 SQLite 数据库运行该工作时 该工作运行良好 因此我认为问题出在 Google 后端 一条错误
  • 使用 SSL 的 wcf net.tcp

    有人有在 WCF 中使用 SSL 和 net tcp 绑定的经验吗 我读过这是可能的 但没有找到有关如何实现它的良好信息 我很想听听任何了解或实施过这一点的人的意见 提前致谢 看看这个链接里的内容 http msdn microsoft c
  • 通过传递带有要选择的列名称的有序向量,对 dplyr 中的列进行动态排序

    我使用下面的代码生成一个简单的汇总表 Data data mtcars Lib require dplyr Summary mt sum lt mtcars gt group by am gt summarise each funs min
  • php 回显尖括号

    我想在页面上显示文本 文本应该如下所示
  • CASE 语句未正确定义列雪花

    我有一个以下格式的查询 用于执行COALESCE以及使用定义一个新列CASE陈述 SELECT COALESCE mm1 missing AS mm1 COALESCE mm2 missing AS mm2 CASE WHEN mm1 fa
  • HTML::PullParser 随机分割文本元素

    我正在使用 Perl 模块HTML PullParser 我注意到它有时会随机分割文本元素 据我所知 例如 如果我有一个 html 文件test html与内容 font style font family none size 2 THE
  • 确定掷骰子中数字出现的频率

    对于游戏 我试图确定在给定的骰子数量下特定的 出现的频率 我知道 这个问题看起来很奇怪 让我尝试用实际数字来解释它 因此 对于 1 个骰子 每个数字的频率将相同 1 6 将出现相同的次数 现在对于 2 个骰子 情况会变得不同 我想 5 6
  • 无法为 Facebook 测试用户添加当前城市

    我正在开发基于位置的功能 因此在测试应用程序下创建了一些 Facebook 测试帐户 我试图为所有测试用户添加当前城市 手动 但 Facebook 在输入城市时抛出以下错误 您请求的内容现在无法显示 可能是 暂时不可用 您点击的链接可能已过
  • Linux 下的 Ruby 不区分大小写地打开文件

    有没有办法在Linux下的Ruby中不区分大小写地打开文件 例如 给定字符串foo txt 我可以打开该文件吗FOO txt 一种可能的方法是读取目录中的所有文件名并手动搜索所需文件的列表 但我正在寻找一种更直接的方法 一种方法是编写一个小
  • 将 EAR 模块转为 OSGI 包的正确方法

    有必要将 EAR 的一部分 即战争 转变成 OSGI 包并保留其互操作性 Glassfish 3 0 1 已经有了osgi web container模块 我成功部署了独立的 OSGI war 但如果是前企业战争 我觉得有点困难 我该如何处
  • solr 地理层次结构

    我一直在试图找出一种在 solr 中实现层次结构分面的方法 但不知道在我的情况下如何做到这一点 我读过几篇关于在 solr 中进行层次结构的文章以及补丁 64 和 792 中的解决方案 我遇到的主要问题是我的实体可以属于层次结构的多个分支
  • R ggplot2 - 简单绘图 - 无法指定对数轴限制

    我正在尝试在 R 中的 ggplot2 中创建一个简单的密度图 这是我的代码 效果很好 d lt ggplot result aes x result baseMeanA d geom density colour darkgreen si
  • 如何将 java.time.Instant 格式化为本地时区的字符串?

    如何格式化javax time Instant http threeten sourceforge net apidocs 2011 01 07 javax time Instant html作为本地时区的字符串 以下是本地翻译的Insta