生成时间java_Java8生成时间方式以及格式化时间

LocalDate类

第一种:直接生成当前时间LocalDate date = LocalDate.now();

System.out.println(date);

结果:2020-08-20

第二种:使用 LocalDate.of 构建时间LocalDate date = LocalDate.now();

date = LocalDate.of(2020, 9, 20);

System.out.println(date);

结果:2020-09-20

第三种:使用 LocalDate.parse 构建时间LocalDate date = LocalDate.now();

date = LocalDate.parse("2020-08-20");

System.out.println(date);

LocalTime类

第一种:直接获取当前时间包含毫秒数// 获取当前时间,包含毫秒数

LocalTime now = LocalTime.now();

System.out.println(now);

结果:10:59:01.532

第二种:构建时间LocalTime localTime = LocalTime.of(13, 30, 59);

System.out.println(localTime);

结果:13:30:59

第三种:获取当前时间不包含毫秒数LocalTime now = LocalTime.now();

LocalTime localTime = now.withNano(0);

System.out.println(localTime);

结果:11:02:07

第四种:将字符串转成时间LocalTime localTime = LocalTime.parse("11:05:20");

System.out.println(localTime);

结果:11:05:20

第五种:获取时、分、秒、纳秒LocalTime time = LocalTime.now();

System.out.println("当前时间" + time);

// 获取 时,分,秒,纳秒

int hour = time.getHour();

int minute = time.getMinute();

int second = time.getSecond();

int nano = time.getNano();

System.out.println( hour + "时" + minute + "分" + second + "秒" + nano + "纳秒");

结果:

当前时间11:27:14.161

11时27分14秒161000000纳秒

LocalDateTime类

第一种:直接获取当前时间包含毫秒数LocalDateTime time = LocalDateTime.now();

System.out.println(time);

结果:2020-08-20T11:07:45.217

第二种:将字符串转成时间String date = "2020-08-20 11:08:10";

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime time = LocalDateTime.parse(date, dateTimeFormatter);

System.out.println(time);

结果:2020-08-20T11:08:10

第三种:将时间转成时间戳String date="2020-08-20 11:08:10";

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime time = LocalDateTime.parse(date, dateTimeFormatter);

long l = time.toEpochSecond(ZoneOffset.of("+9"));

System.out.println(l);

结果:1597889290

第四种:将时间进行格式化为字符串DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String time = dateTimeFormatter.format(LocalDateTime.now());

System.out.println(time);

结果:2020-08-20 11:13:39

第五种:获取、年、月、日、时、分、秒、纳秒/** 时间 **/

LocalDateTime dateTime = LocalDateTime.now();

System.out.println("LocalDateTime:" + dateTime);

// LocalDateTime实际上就是 日期类+时间类的组合,所以也可以LocalDate和LocalTime的一些方法

int year = dateTime.getYear();

int month = dateTime.getMonthValue();

int day = dateTime.getDayOfMonth();

int hour = dateTime.getHour();

int minute = dateTime.getMinute();

int second = dateTime.getSecond();

int nano = dateTime.getNano();

System.out.println(year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒" + nano + "纳秒");

结果:

当前时间:2020-08-20T11:32:10.978

2020年8月20日11时32分10秒978000000纳秒

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java利用时间生成8位不重复的字符串作为工号的方法可以通过以下步骤实现。 首先,获取当前时间的毫秒数作为基准值。可以使用System.currentTimeMillis()方法获取当前时间的毫秒数。 然后,将基准值转化为一个8位长度的字符串。可以使用String.format方法,并设置格式化参数为"%08d"来将基准值转换为8位长度的字符串。其中,%08表示输出的字符串长度为8位,不足位数的部分用0填充,而d表示按十进制数进行输出。 接着,通过判断生成的工号是否已经存在来保证工号的唯一性。可以使用一个Set集合来存储生成的工号,并在生成新的工号前判断集合中是否已经存在该工号。如果存在,则重新生成直到生成一个不存在的工号。 最后,将生成的工号返回。可以定义一个方法,该方法返回一个唯一的8位工号字符串。在该方法中,通过循环生成工号并使用Set集合进行判断,直到生成一个唯一的工号为止。然后返回该工号。 以下是一个示例代码: ```java import java.util.HashSet; import java.util.Set; public class GenerateEmployeeID { private static Set<String> generatedIDs = new HashSet<>(); public static String generateID() { while (true) { String id = String.format("%08d", System.currentTimeMillis()); if (!generatedIDs.contains(id)) { generatedIDs.add(id); return id; } } } public static void main(String[] args) { String employeeID = generateID(); System.out.println("生成的工号为: " + employeeID); } } ``` 这样,我们就可以利用时间生成8位不重复的字符串作为工号。每次运行程序,都会生成一个唯一的工号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值