首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用org.threeten.bp.OffsetDateTime的安卓数据绑定格式化程序

使用org.threeten.bp.OffsetDateTime的安卓数据绑定格式化程序
EN

Stack Overflow用户
提问于 2018-07-20 03:29:19
回答 1查看 246关注 0票数 1

我有一个来自org.threeten:threetenbp包的OffsetDateTime,我想在我的Android视图中格式化它。

我有一个DTO:

代码语言:javascript
复制
public class SomeDto {
    private org.threeten.bp.OffsetDateTime timestamp;
    // getters and setters...
}

以及一个具有绑定和TextView的视图:

代码语言:javascript
复制
<data>
    <variable
        name="dto"
        type="com.example.SomeDto" />
</data>
...
<TextView
        ...
        android:text="@{@string/formatTime(dto.timestamp)}"
 />

和一个strings.xml

代码语言:javascript
复制
<string name="formatTime">%1$tH:%1$tM</string>

但我似乎不能让它工作。我得到了:

代码语言:javascript
复制
 java.util.IllegalFormatConversionException: H != org.threeten.bp.OffsetDateTime

Android文档详细介绍了格式化程序here

我可以让格式化程序与字符串一起工作。但是无论我在strings.xml中放入哪种日期/时间格式,我都会得到上面的异常。

格式化根本不适用于OffsetDateTime

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 02:39:01

正如@pskink在上面评论的那样,我使用了BindingAdapter

代码语言:javascript
复制
@BindingAdapter("formatTime")
public static void formatTime(TextView textView, OffsetDateTime dateTime) {
    textView.setText(dateTime.format(DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM)));
}

然后在我看来:

代码语言:javascript
复制
<TextView
    ...
    formatTime="@{dto.timestamp}"
/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51430463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档