Maison > Questions et réponses > le corps du texte
P粉2855875902023-09-04 00:07:58
Votre problème semble provenir du traitement de l'année et du mois comme des valeurs distinctes. Combinez-les plutôt. Pensez en termes d'années et de mois.
YearMonth
coursJava inclut une classe pour ce concept. Il porte bien son nom : YearMonth
et se trouve dans le package java.time.
YearMonth ym = YearMonth.of ( 2023 , 3 ) ;
Ou utilisez Month
énumération pour garantir des valeurs valides.
YearMonth ym = YearMonth.of ( 2023 , Month.MARCH ) ;
Vous pouvez utiliser 地图
。使用 NavigableMap
pour conserver les clés dans un ordre trié.
NavigableMap< YearMonth , UUID > map = new TreeMap<>() ; map.put( YearMonth.of ( 2023 , Month.MARCH ) , UUID.randomUUID() ); map.put( YearMonth.of ( 2023 , Month.FEBRUARY ) , UUID.randomUUID() );
Testez si une valeur a été saisie.
boolean alreadyPut2023March = map.containsKey( YearMonth.of ( 2023 , Month.MARCH ) ) ;
À des fins de texte, utilisez le format ISO 8601 par défaut : AAAA-MM
La classejava.time utilise le format ISO 8601 par défaut lors de l'analyse/génération de texte.
String iso8601Output = YearMonth.of ( 2023 , Month.MARCH ).toString() ;
En supposant que votre base de données ne fournit pas de type de données année et mois, une telle chaîne peut être utilisée pour stocker dans votre base de données. Je ne connais aucune base de données fournissant ce type de données. Les mots suffisent donc.
Veuillez noter que lors du tri alphabétique, les valeurs seront également triées par ordre chronologique.
Votre JSON ressemblera à ceci :
{
"year-month": "2023-03",
"readingTime": "1"
}