标签: threetenabp

如何在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万
查看次数

如何使用ThreeTenABP将ZonedDateTime/OffsetDateTime转换为Date?

使用ThreeTen Android Backport库,转换ZonedDateTimeOffsetDateTime进入旧学校java.util.Date实例的最简单方法是什么?

如果我拥有完整的Java 8库,那当然就是这样做的方式(如本问题所示):

Date.from(zonedDateTime.toInstant());
Run Code Online (Sandbox Code Playgroud)

但我无法在Android上使用它; 特别Date.from(Instant instant)是缺少.

java android threetenbp threetenabp

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

如何通过日期选择器计算年龄?

我正在自学 Kotlin。我试图在输入出生日期后计算用户的年龄并将其显示在另一个活动中。

我尝试了很多不同的东西,但没有一个起作用。我确信我可能忽略了一些简单的事情。

我的代码:


class MainActivity : AppCompatActivity() {
    var date1: EditText? = null
    var datePickerDialog: DatePickerDialog? = null
    lateinit var submitButton: Button
    lateinit var userInput: EditText
    lateinit var dob: EditText
    @SuppressLint("SetTextI18n", "MissingInflatedId", "CutPasteId")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(layout.activity_main)
        date1 = findViewById<EditText>(id.date) as EditTe
        date1!!.setOnClickListener{ // calender class's instance and get current date , month and year from calender
            val c = Calendar.getInstance()
            val mYear = c[Calendar.YEAR] // current year
            val mMonth = c[Calendar.MONTH] // current month
            val …
Run Code Online (Sandbox Code Playgroud)

android datepicker kotlin threetenabp

5
推荐指数
1
解决办法
367
查看次数

为什么我的 UTC 即时没有转换为 BST?

我有以下代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.UK);
Instant inst = DateTimeUtils.toInstant(sdf.parse("2019-08-13T18:00:00Z"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm").withLocale(Locale.UK).withZone(ZoneId.of("Europe/London"));
System.out.println(formatter.format(inst));
//prints 18:00
Run Code Online (Sandbox Code Playgroud)

这让我感到惊讶,因为我认为inst这将是 GMT/UTC 时间,并且formatter会将其格式化为伦敦时间(该日期为 BST(UTC+1:00)),生成19:00.

我在这里缺少什么?

我猜这是我的代码一个通用的问题,但如果它的确与众不同,这是利用org.threeten.bp.*从类ThreeTen-反向移植项目,在另外的适应Android的早期ThreeTenABP项目。

java-time threetenbp threetenabp

1
推荐指数
1
解决办法
590
查看次数