Comment obtenir Siècle à partir de la date en Java
Comment obtenir cours de ce Siècle, à partir d'une date en Java?
Par exemple la date "06/03/2011"
selon le format de "MM/dd/yyyy"
. Comment puis-je obtenir cours de ce siècle, à partir de cette date à l'aide de SimpleDateFormat
?
Que voulez-vous que siècle dans ce cas, "19"?
Je veux obtenir siècle actuel
2011 est dans le 21e siècle. Voulez-vous exactement cette valeur?
oui je veux exactement la valeur '21'
Je veux obtenir siècle actuel
2011 est dans le 21e siècle. Voulez-vous exactement cette valeur?
oui je veux exactement la valeur '21'
OriginalL'auteur Zeeshan | 2011-06-03
Vous devez vous connecter pour publier un commentaire.
Si vous considérez que 1 ANNONCE pour 100 AD pour être les premiers cent ans, vous devez
(calendar.get(Calendar.YEAR) + 99 / 100)
mais si vous considérez le 20ème siècle, de 1900 à 1999, la formule est correcte.Oui, c'est en effet ce que nous devons faire: le stupide
+1
... je déteste ça. Pourquoi est-ce que les programmeurs sais que c'est beaucoup plus intéressant de commencer à compter à partir de zéro? Année 0-99 devrait être siècle 0. 2000-2099 devrait être siècle 20. Peut-il être plus logique alors ce?OriginalL'auteur Harry Lime
Un léger changement à ce que Harry Lime posté. Sa logique n'est pas tout à fait correct. Année 1901 serait 20e siècle, mais 1900 serait 19ème siècle.
OriginalL'auteur Ram
Les autres Réponses sont correctes, mais obsolète.
java.temps
La java.le temps cadre est intégré dans Java 8 et les versions ultérieures. Ces classes supplanter l'ancien gênants date du temps des classes comme
java.util.Date
,.Calendar
, &java.text.SimpleDateFormat
.Maintenant dans le mode de maintenance, le Joda-Time projet conseille également la migration vers java.temps.
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications.
Une grande partie de la java.fonction temps est de retour, porté à Java 6 & 7 dans ThreeTen-Backport et plus adapté à Android dans ThreeTenABP.
La ThreeTen-Extra projet s'étend java.temps avec d'autres classes. Ce projet est un terrain d'essai pour de possibles futurs ajouts à java.temps.
LocalDate
La
LocalDate
classe représente une date uniquement de la valeur, sans le temps de la journée et sans fuseau horaire.Pour analyser spécifier le format. En passant, je vous conseille d'utiliser le format ISO 8601 formats standard qui peut être analysé directement par java.les classes de temps.
Pour obtenir le siècle, il suffit de prendre le numéro de l'année et diviser par 100. Si vous voulez le nombre ordinal, "vingt-et-unième siècle" pour 20xx, pour en ajouter un.
De vidage de la console.
OriginalL'auteur Basil Bourque
Je ne sais rien à propos de Java, mais pourquoi ne demandez-vous pas l'ensemble de l'année et de faire les 2 derniers chiffres de 0?
MODIFIER
Si vous voulez 2011 pour devenir 21e siècle - qui vient d'obtenir l'exercice complet dans un format de chaîne, puis tomber les 2 derniers caractères, puis de les analyser pour un int et ajouter 1!
oui, mais il ne dit pas ce que ses besoins sont, et de faire ce que je suggesst lui donnerait le siècle...
Si nous y allons avec une définition conventionnelle de l'siècles, votre formule donnerait un mauvais résultat pour la dernière année de chaque siècle. Par exemple, il serait affirmer que l'année 2000 a appartenu au 21e siècle.
OriginalL'auteur jcvandan
De le diviser par le slahes, obtenir les deux premiers symboles de la troisième élément dans le tableau qui en résulte, Entier.parseInt et ajouter 1, c'est:
(pas sûr de la substring() syntaxe sur le dessus de ma tête)
OriginalL'auteur Ibolit