gpt4 book ai didi

java - 是否有 DayOfWeek::getDisplayName() 的反函数

转载 作者:搜寻专家 更新时间:2023-11-01 02:37:28 26 4
gpt4 key购买 nike

我需要一个转换器,将 DayOfWeek 转换为 String 并在给定一些 LocaleTextStyle 的情况下反过来.一种方法很简单:

public String getAsString(DayOfWeek day, TextStyle style, Locale locale){
return day.getDisplayName(style, locale);
}

另一方面,我没有在java.time 包中找到任何有用的方法。我正在寻找类似 LocalDate::parse(CharSequence text, DateTimeFormatter formatter) 的内容,但用于 DayOfWeek

最佳答案

DayOfWeek 没有parse 方法,但您可以构建一个DateTimeFormatter 并将其与DayOfWeek::from 一起使用 解析 String:

import java.time.temporal.ChronoField;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;

public DayOfWeek parseFromString(String str, TextStyle style, Locale locale) {
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
// Day of the week field, using the same TextStyle
.appendText(ChronoField.DAY_OF_WEEK, style)
// use the same locale
.toFormatter(locale);
// parse returns a TemporalAccessor, DayOfWeek::from converts it to a DayOfWeek object
return formatter.parse(str, DayOfWeek::from);
}

有了这个,您可以从您创建的 String 中获取 DayOfWeek:

String dayOfWeekString = getAsString(DayOfWeek.MONDAY, TextStyle.FULL, Locale.US);
System.out.println(dayOfWeekString); // monday

DayOfWeek dayOfWeek = parseFromString(dayOfWeekString, TextStyle.FULL, Locale.US);
System.out.println(dayOfWeek); // MONDAY (return of DayOfWeek.toString())

关于java - 是否有 DayOfWeek::getDisplayName() 的反函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44244247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com