[JAVA] Lorsque le mois de la date est acquis, le quart de janvier

Un bug courant qui provoque un décalage de janvier lors de l'obtention du mois de la date. Problème de spécification.

Pour javascript

La méthode getMonth () renvoie une valeur basée sur 0 qui représente le "mois" de la date spécifiée, en fonction de l'heure locale. Vous devez donc le formater comme ci-dessous

function getTiffFileName(areaID, pointID, theme, func){
	var temple = config.tiff_file_name_format;
	var date = new Date();
	//var date = new Date('October 3, 2019 11:02:20');
	return temple.split('{areaID}').join(areaID)
		.split('{pointID}').join(pointID)
		.split('{theme}').join(theme)
		.split('{func}').join(func)
		.split('{yyyy}').join(date.getFullYear())
		.split('{mm}').join(dateToString(date.getMonth() + 1))
		.split('{dd}').join(dateToString(date.getDate()))
		.split('{HH}').join(dateToString(date.getHours()))
		.split('{MM}').join(dateToString(date.getMinutes()))
		.split('{SS}').join(dateToString(date.getSeconds()))
		.split('{TT}').join(date.getTime());
}

function dateToString(val){
	if(val < 10){
		val = '0' + val;
	}
	return val;
}

Pour java

Au moment de Calendar.MONTH, il est nécessaire de formater comme ci-dessus

	private String getBinaryFileName(){
		Calendar calendar = Calendar.getInstance();
		String yyyy = toString(calendar.get(Calendar.YEAR),4);
		String mm = toString(calendar.get(Calendar.MONTH) + 1,2);
		String dd = toString(calendar.get(Calendar.DAY_OF_MONTH),2);
		String HH =  toString(calendar.get(Calendar.HOUR_OF_DAY),2);
		String MM = toString(calendar.get(Calendar.MINUTE),2);
		String SS = toString(calendar.get(Calendar.SECOND),2);
		String TT = Integer.toString(calendar.get(Calendar.MILLISECOND));
		return RelayConst.tsunamiinfo_fortiff_path + RelayConst.tsunamiinfo_fortiff_format.replaceAll("\\{yyyy\\}", yyyy)
				.replaceAll("\\{mm\\}", mm)
				.replaceAll("\\{dd\\}", dd)
				.replaceAll("\\{HH\\}", HH)
				.replaceAll("\\{MM\\}", MM)
				.replaceAll("\\{SS\\}", SS)
				.replaceAll("\\{TT\\}", TT);
	}

	private String toString(int val, int digits) {
		String str = Integer.toString(val);
		if (str.length() > digits) {
			str = str.substring(str.length() - digits);
		}
		while (str.length() < digits) {
			str = "0" + str;
			}
			return str;
		}

Recommended Posts

Lorsque le mois de la date est acquis, le quart de janvier
Quand le survol d'Eclipse est difficile à voir
Dans Time.strptime,% j (date totale de l'année) est
Lorsque vous utilisez le constructeur de la classe Date de Java, la date avance de 1900.
L'idée de couper quand l'erreur n'est pas résolue
[Rails] Lorsque le changement de disposition du dispositif n'est pas reflété
[Swift] Obtenez le moment où la valeur de textField est modifiée
'% 02d' Quel est le% de% 2?
Le concept de conception de l'API de date et d'heure de Java est intéressant
Méthode d'enquête lorsque le processeur du serveur exécutant java est lourd
Cas où les utilisateurs sont déconnectés lors de la modification d'une application (rails)
Erreur lors de la finalisation du membre de la classe Entity utilisé dans SpringWebFlux
Talend WebAPI Solution pour le composant qui enregistre le cookie lors de la récupération des données
Lorsque le nom de la classe du bean est dupliqué
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
LIMIT 11 lorsque les données sont acquises avec irb
Quelle est la structure des données d'ActionText?
Upcast (Java) qui peut réduire la quantité de changement lorsque la spécification est modifiée
[Java] Calculer le jour à partir de la date (ne pas utiliser la classe Calendar)
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~
Le trait de soulignement ActiveSupport n'est pas la conversion inverse de camelize
f.Validation lorsque "Veuillez sélectionner" de collection_select est sélectionné
L'ordre des modificateurs de méthode Java est fixe
La date et l'heure de java8 ont été mises à jour
Le nom officiel de Spring MVC est Spring Web MVC
L'histoire de l'initialisation de Money :: Currency pendant les tests
Lorsque le projet n'est pas affiché dans eclipse