想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。
我需要在URL中使用日期,因此日期不能包含连字符、破折号或冒号等符号:。
我认为20220615T160543Z
是唯一合适的格式,但问题是它是UTC格式,但我需要它在其他时区。
是否有类似20220615T160543 2:00的内容,其中2:00部分表示与UTC的时区偏移?
如果是,我可以从ZonedDateTime对象中打印出来吗?
我目前拥有的对象是
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(date.getStartsOn().toInstant(), timezone);
提前感谢!
更新:
感谢所有回复!
看起来我建议的方法不可行,因为它可能像20220615T160543-2:00,其中有一个连字符。。。
显然,百分比编码是唯一的方法。
再次感谢!
请使用以下内容:
public class Main {
public static void main(String[] args) throws IOException {
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.of("US/Eastern"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHmmssXXX");
String formattedString = zonedDateTime.format(formatter);
System.out.println(formattedString);
}
}
如何打印带有时区但没有连字符的ZonedDateTime?
像这样试试。
首先,使用问题中的示例创建一个分区日期时间。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmssz");
ZonedDateTime zdt = ZonedDateTime.parse("20220615T160543Z",dtf);
然后使用ZoneId
打印它,如下所示,为您提供您的区域。
String dt = zdt.format(DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmssVV")
.withZone(ZoneId.of("Asia/Qatar")));
System.out.println(dt);
指纹
20220615T190543Asia/Qatar
注意:不幸的是,ZoneId的一小部分包含连字符。您可以通过执行以下操作来查看它们:
ZoneId.getAvailableZoneIds().stream()
.filter(str->str.contains("-"))
.forEach(System.out::println);
问题内容: 如果您有一个带有unicode字符的字符串,则可以打印它,并获得未转义的版本: 但是如果我们有一个包含上面字符串的列表并打印出来: 您仍然会获得转义的字符序列。您如何才能使列表的内容不被转义,这可能吗?像这样: 另外,如果字符串是类型,那么您如何与上述相同? 问题答案: 打印字符串时,将获得对象方法的输出- 在这种情况下,该字符串不带引号。列表的方法不同,它创建一个包含打开和关闭的字符
我正在开发一个文本编辑器,我的下一个目标是在打印机上打印书面文本(而不是sysout)。 我试了很多次,它起作用了,但是换行符被忽略了。 我创建了一个新的图形并设置了字体。然后我把写在编辑器窗口中的文本。iPosX 你们有什么想法,我可以打印整个字符串考虑到行中断? 提前感谢!
问题内容: 使用时,Double将添加逗号(5143打印为5,143)。如何禁用逗号? 问题答案: 您的问题属于Rorick正确指出的语言环境。但是,您应该查看DecimalFormat类,以防更改Locale意味着弄乱了所有东西。 查看NumberFormat类,以处理千位分隔符。因为看来您的情况是关于千位分隔符。
问题内容: 我从plist中的字典中加载了一个值,但是当我将其打印到控制台时,它会打印:Optional(Monday Title),而不仅仅是“ Monday Title”。 如何在打印时摆脱值的Optional()? 问题答案: 摆脱的一种方法是使用感叹号: 但是,只有在确定存在该值的情况下,才应这样做。另一种方法是解包和使用条件,例如: 将该程序粘贴到runswiftlang中进行演示:
问题内容: 在Hibernate中是否可以用实际值而不是问号打印生成的SQL查询? 如果Hibernate API无法实现,您将如何建议使用实值打印查询? 问题答案: 您需要为以下类别启用日志记录: -设置为在执行所有SQL DML语句时记录它们 -设置为记录所有JDBC参数 因此,log4j配置如下所示: 第一个等效于legacy 属性,第二个则 打印绑定参数。 另一个解决方案(基于非hiber
问题内容: 在Hibernate中是否可以用实际值而不是问号打印生成的SQL查询? 如果Hibernate API无法实现,您将如何建议使用实值打印查询? 问题答案: 您需要为以下类别启用日志记录: -设置为在执行所有SQL DML语句时记录它们 -设置为记录所有JDBC参数 因此,log4j配置如下所示: 第一个等效于 属性,第二个则打印绑定参数。 另一个解决方案(基于非hibernate)是使