使用Android和Java 8,如何及时获得unix时间戳?
例如
我知道我可以使用当前的时间戳System.currentTimeMillis() / 1000L(您也可以使用Instant.now().getEpochSecond()新的java.time,但这需要Android API> 25).现在我需要得到偏移并减去它.我可以使用TimeUnit.Days.toSeconds(),但是如果我想减去年份,它就没有YEAR单位而且我不想自己捣乱闰年.
有一个简单的方法吗?
我已经采取了SOF和其他网站上给出的所有答案,并尝试这样做:
String fromDateTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssX").format(new DateTime().plusMonths(-6));
Run Code Online (Sandbox Code Playgroud)
但是我被给了例外:
线程"main"中的异常java.lang.IllegalArgumentException:无法将给定的Object格式化为Date
我究竟做错了什么?
我的问题是我需要获取用户输入的两个日期之间的工作日。我不知道用什么来比较和获取日期,但有我的代码。
// Scanner
Scanner input = new Scanner(System.in);
System.out.println("First date: ");
String date1 = input.nextLine();
System.out.println("Second date: ");
String date2 = input.nextLine();
input.close();
// The format for the Date
DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
// Conver String to Date
Date date_1 = formatDate.parse(date1);
Date date_2 = formatDate.parse(date2);
// Calendar
Calendar calendar = Calendar.getInstance();
// Date to Calendar
calendar.setTime(date_1);
calendar.setTime(date_2);
Run Code Online (Sandbox Code Playgroud)
现在我需要做一些事情来获得这些日期之间的工作日,但我不知道如何
我从我的客户那里收到一个这样的格式的字符串
yyyy-MM-dd'T'HH:mm:ss.SSSXXX:
2021-02-04T15:31:22.265-05:00
2021-02-04T15:31:22.265+00:00
2021-02-04T15:31:22.265-06:00
Run Code Online (Sandbox Code Playgroud)
我需要将它们转换为新格式:
MMMM dd, yyyy - HH:mm a z (where z is the three character abbreviation for the timezone. Ex. EST)
February 02, 2021 - 15:31 PM EST
February 02, 2021 - 15:31 PM UTC
February 02, 2021 - 15:31 PM CST
Run Code Online (Sandbox Code Playgroud)
通常我会做这样的事情:
SimpleDateFormat inDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
SimpleDateFormat outDateFormat = new SimpleDateFormat("MMMM dd, yyyy - HH:mm a z")
Date date = inDateFormat.parse("2021-02-04T15:31:22.265-05:00");
String convertedTime = outDateFormat.format(date) // February 02, 2021 - 15:31 PM EST
Run Code Online (Sandbox Code Playgroud)
但后来我意识到它只是在打印 …
我知道这应该很简单,但我在互联网上找不到任何东西。
鉴于某些条件,我想Date在满足条件时获得下一个。例如,如果条件是minute = 01并且second = 30现在时间是15:58:00,则函数应该在今天返回16:01:30。我如何在 Java 中完成此操作?
我需要能够设置至少秒、分钟和小时的条件,但我希望有可能将一个条件设置为任何值(如上面的示例,未指定小时)。
感谢并抱歉我的英语不好。
编辑: 我看到有些事情可能需要澄清:我想总是在满足条件的当前时间之后获得一个日期(或其他)。此外,这适用于 Minecraft Spigot 服务器,也许此信息可以提供帮助。
spring-boot 的新手。
我正在尝试使用注释@ConfigurationProperties 解析文件中的属性。我能够解析日期字段以外的字段。
问题是我的属性文件只有时间而没有日期。即日期=09:30:00。
我可以用 @DateTimeFormat(pattern = "HH:mm:ss") 解析它。但问题是,它给出的日期为 date=Thu Jan 01 09:30:00 GST 1970。
我想获取今天的日期,时间为 09:30:00。是否可以 ?
@ConfigurationProperties
public class Config {
private int id;
private int version;
@DateTimeFormat(pattern = "HH:mm:ss")
private Date date;
}
Run Code Online (Sandbox Code Playgroud)
财产
id=12
version=2
date=09:30:00
Run Code Online (Sandbox Code Playgroud) 我正在尝试在java中将pst时间戳转换为gmt
我有一个带有时间戳的字符串2021-03-23T22:00:00.669-07:00。我将如何处理该字符串并将其转换为 GMT 时间戳?
Run Code Online (Sandbox Code Playgroud)2021-03-24T05:03:00.669Z
我做了一些我尝试过的事情,但还没有去过任何地方
//Date date = new Date(str);
String s = str;
DateFormat pstFormat = new SimpleDateFormat();
DateFormat gmtFormat = new SimpleDateFormat();
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
TimeZone pstTime = TimeZone.getTimeZone("PST");
pstFormat.setTimeZone(gmtTime);
gmtFormat.setTimeZone(pstTime);
System.out.println("GMT Time: " + pstFormat.format(s));
System.out.println("PST Time: " + gmtFormat.format(s));
Run Code Online (Sandbox Code Playgroud)
结果java.lang.IllegalArgumentException: Cannot format given Object as a Date在这一行:
System.out.println("GMT Time: " + pstFormat.format(s));
Run Code Online (Sandbox Code Playgroud) 我必须List<Card>在字段issueDate(类型String)上进行过滤,其中卡片要显示到过去 7 年的日期。
我尝试过的解决方案是issueDate从Stringto解析字段Date,然后应用date.after(startDate),date.before(endDate)如下所示:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cardList.stream()
.map(s->s.getIssueDate())
.filter(dt -> sdf.parse(dt).after(sdf.parse("2020-06-08")) &&
sdf.parse(dt).before(sdf.parse("2020-08-12")))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
甚至不能申请循环,因为可能有数百张卡发行,它通过迭代每个发卡日期(字符串到日期和检查年份)来影响性能
任何人都可以提出一个很好的解决方案来解决这个问题吗?
我有这个String date="2021-04-25T18:54:18",我应该这样格式化:HH:mm ,dd mmm yyyy
我试过这个
String date="2021-04-25T18:54:18";
Date format= null;
try {
format = new SimpleDateFormat("HH:mm, yyyy-MM-dd'T", Locale.ENGLISH).parse(date);
holder.tvDate.setText(format.toString());
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但不起作用
我很难尝试将字符串时间格式化为 MM:DD::YY 并且只有时间。我从 IP 获取以下格式的时间
2021-09-10T00:37:42Z
Run Code Online (Sandbox Code Playgroud)
我想在以下位置显示日期和时间:
09/08/2021
Run Code Online (Sandbox Code Playgroud)
时间
09:50PM
Run Code Online (Sandbox Code Playgroud) java ×8
android ×3
date ×3
datetime ×2
format ×2
time ×2
timezone ×2
android-date ×1
arraylist ×1
java-8 ×1
java-stream ×1
java-time ×1
jodatime ×1
spring ×1
spring-boot ×1