相关疑难解决方法(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万
查看次数

java.util.Date是否使用TimeZone?

我有2台不同的计算机,每台计算机都有不同的TimeZone.

在一台计算机上打印System.currentTimeMillis(),然后在两台计算机上打印以下命令: System.out.println(new Date(123456));- > 123456代表currentTimeMillis计算机#1中的数字.

第二个打印(虽然键入硬编码)导致两台计算机中的打印不同.这是为什么?

java timezone date

23
推荐指数
3
解决办法
7万
查看次数

Java SimpleDateFormat:错误一小时

我不需要整个故事来澄清我的问题,所以我只是展示代码(这只是一个例子).为什么我的结果有所不同?

long millis = 2305293L;
System.out.println(
    millis + "ms = " + 
    (millis / 1000) + "s = " + 
    (millis / 1000 / 60) + "m");
System.out.println(
    new SimpleDateFormat("HH:mm:ss").
    format(
        new Date(millis)
        )
    );
Run Code Online (Sandbox Code Playgroud)

产量

2305293ms = 2305s = 38m
01:38:25
Run Code Online (Sandbox Code Playgroud)

java date date-format

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

为什么日历使用正确的时区返回错误的小时?


返回的时间和日期是正确的,除了小时,它比它应该小1小时.

我似乎设置了获得正确时间和日期所需的一切:

 - I'm using Calendar.getInstance(), instead of new Date()
 - I'm setting the timezone of the Calendar instance with Timezone.getTimeZone
 - I'm using DateFormat and SimpleDateFormat to format the output
Run Code Online (Sandbox Code Playgroud)


我的时区是Eastern Standard Time,又名UTC/GMT-5:00.这些行都没有任何影响:

 - cal.setTimeZone(TimeZone.getTimeZone(cal.getTimeZone().getDisplayName()));
 - cal.setTimeZone(TimeZone.getTimeZone("EST"));
 - cal.setTimeZone(TimeZone.getTimeZone("UTC"));
 - cal.setTimeZone(TimeZone.getTimeZone("GMT"));
 - cal.setTimeZone(TimeZone.getTimeZone("GMT-5:00"));
Run Code Online (Sandbox Code Playgroud)

...但是这些选项中的每一个都设定了我想要的时区.


这是我的尝试,我错误地向Calendar实例添加了1小时:

PrintWriter output = null;

try {
  output = new PrintWriter(
   new BufferedWriter(new FileWriter("output.txt", true)));

  DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:ms MM/dd/yyyy");
  Calendar cal = Calendar.getInstance();

  // …
Run Code Online (Sandbox Code Playgroud)

java timezone datetime calendar

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

为什么java.util.Date给我错误的时间?

System.out.println(new Date());

Thu Feb 23 04:57:57 ACT 2012
Run Code Online (Sandbox Code Playgroud)

我在main方法中运行它.我的系统当前时间是PKT.但它给了我ACT的时间.

任何的想法?如何获得正确的系统时间?

在此输入图像描述

java date

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

Calendar.getInstance().getTime()以"GMT"而不是Default TimeZone返回日期

Calendar c = Calendar.getInstance();
System.out.println(c.getTime());
c.set(2007, 0, 1);
System.out.println(c.getTime());
Run Code Online (Sandbox Code Playgroud)

输出:

Tue Sep 12 12:36:24 IST 2017

Mon Jan 01 12:36:24 IST 2007

但是,当我在不同的环境中使用相同的代码时,输​​出更改为:

输出:

Tue Sep 12 12:36:24 IST 2017

2007年1月1日星期一12:36:24 GMT

仅供参考,我尝试在设置值之前和之后打印日历实例的时区,两者都在"IST"中.

我想知道这个的根本原因.

java calendar gettime

4
推荐指数
2
解决办法
6674
查看次数

在 Date Java 中设置时区

尝试在 Date 中设置时区(我知道 Date 已弃用)

    LOG.error(modifiedDate + "Date in service"); //Mon Sep 21 06:15:00 CDT 2020
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.ENGLISH);
format.setTimeZone(TimeZone.getDefault());
String dateString = format.format(modifiedDate);
LOG.error(dateString + "  dateString"); //2020-09-21 06:15:00 -0500
Date date = format.parse(dateString);
LOG.error(date + "    date after parsing"); //Mon Sep 21 06:15:00 CDT 
Run Code Online (Sandbox Code Playgroud)

解析后时区没有改变,我错过了什么?

java date

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