相关疑难解决方法(0)

如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.

对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:

>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

datetime android android-gradle-plugin threetenbp threetenabp

169
推荐指数
3
解决办法
2万
查看次数

如何将LocalDate格式化为字符串?

我有一个名为date的LocalDate变量,当我打印它显示1988-05-05我需要转换它打印为05.May 1988.How这样做?

java

126
推荐指数
4
解决办法
20万
查看次数

在Java8中使用Timezone格式化LocalDateTime

我有这个简单的代码:

DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSSSSS Z");
LocalDateTime.now().format(FORMATTER)
Run Code Online (Sandbox Code Playgroud)

然后我会得到以下异常:

java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: OffsetSeconds
at java.time.LocalDate.get0(LocalDate.java:680)
at java.time.LocalDate.getLong(LocalDate.java:659)
at java.time.LocalDateTime.getLong(LocalDateTime.java:720)
at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
at java.time.format.DateTimeFormatterBuilder$OffsetIdPrinterParser.format(DateTimeFormatterBuilder.java:3315)
at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182)
at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1745)
at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1719)
at java.time.LocalDateTime.format(LocalDateTime.java:1746)
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

java java-8 java-time

100
推荐指数
2
解决办法
9万
查看次数

Java Date&Time API有什么问题?

我经常遇到关于Java Date和其他与日期时间相关的类的负面反馈.作为一名.NET开发人员,我不能完全(没有使用它们)了解它们实际上有什么问题.

任何人都可以对此有所了解吗?

java datetime

99
推荐指数
4
解决办法
3万
查看次数

为什么Java date API(java.util.Date,.Calendar)如此混乱?

正如大多数人现在痛苦地意识到的那样,用于处理日历日期的Java API(特别是类java.util.Datejava.util.Calendar)是一个糟糕的混乱.

脱离我的头顶:

  • 日期是可变的
  • 日期表示时间戳,而不是日期
  • 没有简单的方法来转换日期组件(日,月,年...)和日期
  • 日历使用起来很笨,并试图将不同的日历系统组合成一个类

这篇文章总结得很好,JSR-310也解决了这些问题.

现在我的问题是:

这些类是如何进入Java SDK的?大多数这些问题看起来相当明显(特别是Date是可变的)并且应该很容易避免.那怎么回事?时间压力?或者回想起来的问题是否明显?

我意识到这不是一个严格的编程问题,但我发现理解API设计如何出错是很有趣的.毕竟,错误总是一个很好的学习机会(我很好奇).

java api-design date

60
推荐指数
4
解决办法
1万
查看次数

在epoch中转换日期格式

我有一个日期格式的字符串,如

Jun 13 2003 23:11:52.454 UTC
Run Code Online (Sandbox Code Playgroud)

包含millisec ...我想在epoch中转换.Java中是否有可用于执行此转换的实用程序?

java datetime date epoch

55
推荐指数
3
解决办法
11万
查看次数

需要在Java中获取当前时间戳

我需要获取Java中的当前时间戳,格式为MM/DD/YYYY h:mm:ss AM/PM,

例如: 06/01/2000 10:01:50 AM

我需要它也是Threadsafe.

我可以利用这样的东西吗?

java.util.Date date = new java.util.Date();
System.out.println(new Timestamp(date.getTime()));
Run Code Online (Sandbox Code Playgroud)

或者链接在这里讨论的例子.

java format datetime timestamp

50
推荐指数
5
解决办法
18万
查看次数

以特定格式显示Java.util.Date

我有以下场景:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(dateFormat.parse("31/05/2011"));
Run Code Online (Sandbox Code Playgroud)

给出一个输出

Tue May 31 00:00:00 SGT 2011
Run Code Online (Sandbox Code Playgroud)

但我想要输出

31/05/2011 
Run Code Online (Sandbox Code Playgroud)

我需要在这里使用解析,因为日期需要按日期排序而不是字符串.

有任何想法吗 ??

java date

48
推荐指数
4
解决办法
17万
查看次数

SimpleDateFormat返回24小时日期:如何获得12小时的约会?

我想要以毫秒为单位的当前时间然后以12小时格式存储它,但是使用这段代码我得到24小时格式时间.

long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
Run Code Online (Sandbox Code Playgroud)

任何人都可以提出修改以获得理想的结果?

java android simpledateformat

46
推荐指数
4
解决办法
13万
查看次数

如何将ZonedDateTime格式化为String?

我想将a转换ZonedDateTime为a String格式("dd/MM/yyyy - hh:mm").我知道这在Joda-Time其他类型中是可能的,只是使用它们toString("dd/MM/yyyy - hh:mm")....但这不起作用ZonedDateTime.toString().

如何格式化ZonedDateTimeString


编辑:

我试图在另一个时区打印时间,结果似乎总是一样:

ZonedDateTime date = ZonedDateTime.now();
ZoneId la = ZoneId.of("America/Los_Angeles");
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la);

// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
// same result as the previous one
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date2));
Run Code Online (Sandbox Code Playgroud)

而且我和洛杉矶不在同一时区.


编辑2:

找到了如何更改时区:

// Change this:
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la); // incorrect!
// To this:
ZonedDateTime date2 = date.withZoneSameInstant(la);
Run Code Online (Sandbox Code Playgroud)

java string java-time zoneddatetime

38
推荐指数
1
解决办法
4万
查看次数