首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单个和两个数字字符串转换为LocalDate格式

将单个和两个数字字符串转换为LocalDate格式
EN

Stack Overflow用户
提问于 2022-11-01 12:58:55
回答 1查看 23关注 0票数 0

我有一个应用程序,用户可以选择一个从1到12个月的预定义集,然后将其传递到一个字符串中。现在,我想将该字符串转换为LocalDate,但我不希望我的用户丢失已经保存在数据库中的数据。有没有办法将单数或两位数的数据转换为LocalDate?

例如:如果用户先前输入了"2",则需要将该数据更改为2022-02-01。如果用户先前输入了"10“,则这将更改为2022-10-01,依此类推。

我对格式本身很熟悉

代码语言:javascript
复制
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class LocalDateExample1_ISO_LOCAL_DATE {

    public static void main(String[] args) {

        DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
        String date = "2019-10-12";
        LocalDate localDate = LocalDate.parse(date, formatter);

        System.out.println(date);
        System.out.println(localDate);
        System.out.println(formatter.format(localDate));
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-11-01 13:10:45

I有一个应用程序,用户可以选择一个从1到12个月的预定义集,然后将其传递到一个字符串中。

您应该重新考虑这个不必要的int到string到int的转换。

无论如何,要创建一个新的LocalDate,并且指定月份的年份和日期,月份是一个参数(例如monthAsString):

代码语言:javascript
复制
var localDate = LocalDate.of(2022, Integer.parseInt(monthAsString), 1);

若要更改现有LocalDate的月份,请执行以下操作:

代码语言:javascript
复制
var localDate = localDate.withMonth(Integer.parseInt(monthAsString));

请注意,您需要检查

null

  • monthString
  • monthString不可以解析为int
  • 解析的monthString超出范围1,12
  • 解析的月份字符串将导致无效日期,如31.02.2022

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74276335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档