这是我需要处理的日期格式
Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
但我不知道最后两部分是什么.是GMT-0700固定的吗?它应该是这样的吗?
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)");
Run Code Online (Sandbox Code Playgroud) 我使用以下SimpleDateFormat来解析字符串,
SimpleDateFormat ft= new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
String notimeZone = ft.format(startDateTime);
Date date = ft.parse(notimeZone);
Run Code Online (Sandbox Code Playgroud)
startDateTime是日期对象,其值格式为“Thu Mar 06 12:27:55 IST 2014”。
在notimeZone变量中,我得到了,2014 年 3 月 6 日星期四 12:27:55
我期待可变日期的输出,2014 年 3 月 6 日星期四 12:27:55
但是我变得一样了,星期四 3 月 6 日 12:27:55 IST 2014。
如何从日期对象中删除时区。
请帮忙。
是否有任何格式模式可以与 SimpleDateFormat 一起用于季度和半年?
2007-01-23 expected output `Q1 2007`
2007-01-23 expected output `H1 2007`
Run Code Online (Sandbox Code Playgroud) 我得到了非常奇怪的结果,我无法理解。
public class Test {
private static DateFormat df = new SimpleDateFormat("dd.MM.YYYY HH:mm");
public static void main(String[] args) {
Date d = new Date(1356912000000L);
System.out.println(d);
System.out.println(df.format(d));
}
}
Run Code Online (Sandbox Code Playgroud)
给出输出:
Mon Dec 31 01:00:00 CET 2012
31.12.2013 01:00
Run Code Online (Sandbox Code Playgroud)
我认为这可能是语言环境的一些问题,但这是整整一年的转变!任何人都可以解释为什么它会以这种方式执行?
我必须解析以下日期
2016 年 9 月 30 日星期五 18:31:00 GMT+04:00
并且它不适用于以下模式:
new SimpleDateFormat("EEE MMM dd HH:mm:ss z YYYY", Locale.ENGLISH);
我得到以下日期作为输出:Fri Jan 01 18:31:00 GMT+04:00 2016。
你能告诉我我做错了什么吗?
我正在尝试获取Date表示当前系统日期的 YYYY-MM-DD 格式的对象。以下是我的尝试:
Date todayDate = Calendar.getInstance().getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
String todayString = formatter.format(todayDate);
Run Code Online (Sandbox Code Playgroud)
数值如下:
今天日期:Mon May 15 16:24:47 GMT+01:00 2017
今天字符串:2017-24-15
尝试了几次后,我注意到它todayString不是由 YYYY-MM-DD 组成,而是由 YYYY-[分钟][分钟]-DD 组成。
如何获取 YYYY-MM-DD 格式的当前日期?
我有一个字符串“2018-07-24T01:30:27”。我想在不更改时间的情况下将其解析为带有 EST 时区的 ZonedDateTime。
我有代码...
String foo = "2018-07-24T01:30:27";
ZoneId zone = ZoneId.of("America/New_York");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
return simpleDateFormat.parse(foo).toInstant().atZone(zone);
Run Code Online (Sandbox Code Playgroud)
返回值是
2018-07-24T02:30:27-04:00[America/New_York]
Run Code Online (Sandbox Code Playgroud)
我也试过创建这个类,但它没有帮助
@Configuration
public class TimeZoneConfig {
@PostConstruct
public void init() {
TimeZone.setDefault(TimeZone.getTimeZone("EST"));
System.out.println("Date in UTC: " + new Date().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我能得到一些建议吗?
我想将一个包含当前时间和日期的字符串存储到 Android 应用程序的数据库(SQLite)中。为此,我使用 SimpleDateFormat。不幸的是它没有显示正确的时间。我尝试了两种选择。
第一个选项(来自SimpleDateFormat 和 TimeZone)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault());
sdf.format(new Date());
Run Code Online (Sandbox Code Playgroud)
第二个选项(来自Java SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 给出时区为 IST)
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss'Z'");
sdf2.setTimeZone(TimeZone.getTimeZone("CEST"));
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,时间都是错误的。我的笔记本电脑或手机显示的不是当地时间,但输出时间早了 2 小时。我怎样才能改变这一点?我希望我的计算机上也显示柏林的当前时间(CEST)。我很欣赏每一条评论。
我有一个用例,我必须比较 2 个字符串日期,例如
final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(dateFormat.parse("2019-07-07").compareTo(dateFormat.parse("2019-07-07 23:59:59"))>0);
Run Code Online (Sandbox Code Playgroud)
使用 SimpleDateFormat 的上述语句工作得很好,现在我尝试使用 DateTimeFormatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println( LocalDate.parse("2019-07-07", formatter).compareTo(LocalDate.parse("2019-07-07 23:59:59", formatter))>=0);
Run Code Online (Sandbox Code Playgroud)
这会失败,但有例外:-
Exception in thread "main" java.time.format.DateTimeParseException: Text '2019-07-07 23:59:59' could not be parsed, unparsed text found at index 10
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDate.parse(LocalDate.java:400)
at com.amazon.payrollcalculationengineservice.builder.EmployeeJobDataBuilder.main(EmployeeJobDataBuilder.java:226)
Run Code Online (Sandbox Code Playgroud)
如何使用 DateTimeFormatter 避免这种情况,我作为输入传递的字符串可以是任何格式,如 yyyy-mm-dd 或 yyyy-mm-dd hh:mm:ss ,我不想明确编写格式检查,所以可以我使用 DateTimeFormatter 因为我可以使用 SimpleDateFormat 库来做到这一点。
Scala中如何将日期格式转换"2021-02-28 13:38:00.597+0000"为"Mon, Feb 28,2021 15:25:00 UTC"UTC格式?
java ×10
simpledateformat ×10
date ×4
android ×2
calendar ×1
performance ×1
scala ×1
spring-boot ×1
timezone ×1