【问题标题】:Java previous day convert to unix , yesterday formatJava前一天转换为unix,昨天格式
【发布时间】:2019-07-31 06:54:18
【问题描述】:

我有一个昨天日期的 Java 程序并在 Unix 上执行它。但我的程序不工作。重点,每天我应该调用日期格式yyMMdd,然后我会使用这种日期格式来收集用户日志。例如,输出应为193007

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1);
Date yesterday = cal.getTime();
SimpleDateFormat formattedDate = new SimpleDateFormat("yyMMdd");
formattedYesterday = formattedDate.format(yesterday);

【问题讨论】:

  • 这不是 JavaScript,这是 Java。
  • 您能否更详细地描述什么不工作、您的输入与当前输出的样子以及是否有错误?
  • 感谢您为您的问题添加信息。请使用问题下的编辑链接。为了便于阅读,请格式化代码。
  • 仅供参考,java.util.Datejava.util.Calendarjava.text.SimpleDateFormat 等非常麻烦的日期时间类现在是 legacy,被 Java 8 及更高版本中内置的 java.time 类所取代.见Tutorial by Oracle
  • 顺便说一句,pleeeeeeeeeeeeeease 使用 yyyymmdd。我看到您的示例 193007 并假设是 1930 年 7 月,我想知道,“他为什么要处理 80 年前的数据?”

标签: java unix calendar java-time


【解决方案1】:

您的问题不清楚,但您似乎想确定今天的日期,回到昨天的一天,然后生成一个以特定格式表示该值的字符串。

时区

时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因区域而异。例如,Paris France 中午夜后几分钟是新的一天,而 Montréal Québec 中仍然是“昨天”。

continent/region 的格式指定proper time zone name,例如America/MontrealAfrica/CasablancaPacific/Auckland。切勿使用 3-4 个字母的伪时区,例如 ESTIST,因为它们不是真正的时区,没有标准化,甚至不是唯一的(!)。

ZoneId z = ZoneId.of( "America/Montreal" ) ;

LocalDate

LocalDate 类表示没有时间和时区的仅日期值。

LocalDate today = LocalDate.now( z );

昨天减去一天。

LocalDate yesterday = today.minusDays( 1 ) ;

生成文本

通过调用LocalDate :: toString 生成标准ISO 8601 格式的字符串来表示此日期值。

String output = yesterday.toString() ;

2019-07-30

使用DateTimeFormatter.ofPattern 在您的自定义格式模式中生成一个字符串。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuMMdd" ) ;
String output = yesterday.format( f ) ;

190730

ISO 8601

我建议您重新考虑您选择的格式。 ISO 8601 格式的设计目的是易于识别、易于机器解析以及跨文化的人类易于阅读。您的自定义格式不是这些东西,并且可能会导致混淆/错误。

【讨论】:

    【解决方案2】:

    我想你想得到像yyddMM 这样的格式。 您可以将“yyMMdd”更改为“yyddMM”。 example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 2015-01-19
      相关资源
      最近更新 更多