---
title: "Tids konvertering/formatering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/59759-tids-konvertering-formatering"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Viktor"
published: "2002-11-20T10:35:26.000Z"
updated: "2002-11-28T15:47:39.000Z"
replies: 9
views: 379
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/59759-tids-konvertering-formatering"
---

# Tids konvertering/formatering

## #1 — Viktor, 2002-11-20T10:35Z

Hej

Jag undrar om det finns någon inbyggd klass som kan konvertera en text sträng till en tid.
Om jag har denna stäng, 1:15.455 (1 minut, 15 sekunder och 455 tusendelar) så konverterar funktionen detta till tusendelar av en sekund (millisekunder, samma som används i Timestamp).

/Viktor

Permalänk: https://www.webforum.nu/p/59759

## #2 — phonkworks, 2002-11-20T12:27Z

Hm... återkommer...

Permalänk: https://www.webforum.nu/p/861081

## #3 — neox83, 2002-11-21T16:47Z

Har gjort en liten klass för detta ändamål:

```
import java.util.StringTokenizer;
public class TimeConvert{

    private static final int MILLISEKUNDER_I_EN_SEKUND = 1000;
    private static final int SEKUNDER_I_EN_MINUT = 60;
    private static final String UPPDELARE = ".:;,";
    
    public static long konvertera(String tiden){
	StringTokenizer token = new StringTokenizer(tiden, UPPDELARE);
	int minuter = Integer.parseInt(token.nextToken());
	int sekunder = Integer.parseInt(token.nextToken());
	int milliSekunder = Integer.parseInt(token.nextToken());
	long totalMilliSekunder = milliSekunder + (sekunder * MILLISEKUNDER_I_EN_SEKUND)
	    + (minuter*SEKUNDER_I_EN_MINUT*MILLISEKUNDER_I_EN_SEKUND);
	return totalMilliSekunder;
    }
   
}
```

Den kan anrops via TimeConvert.konvertera(strängen med tiden. Den returnerar antalet millisekunder som long.
Du kan använda ".:,;" som delare mellan minut,sekund och millisekunder.

Permalänk: https://www.webforum.nu/p/861889

## #4 — Viktor, 2002-11-21T16:49Z

:bire  
Den var inte dålig, mycket bättre än den som jag använder idag (några for lopar :)). Tack!

/Viktor

Permalänk: https://www.webforum.nu/p/861891

## #5 — Viktor, 2002-11-22T22:00Z

En liten följdfråga,
Hur gör man tvärtom? När jag hämtar tiden i millisekunder från databasen och vill visa den i rätt format (1:16.233)? Någon som har något bra förslag? Eller är det loopar som gäller?

/Viktor

Permalänk: https://www.webforum.nu/p/862599

## #6 — neox83, 2002-11-23T11:59Z

Man lägger till en metod konvertera med signaturen long istället.

```
import java.util.StringTokenizer;

public class TimeConvert{

    private static final int MILLISEKUNDER_I_EN_SEKUND = 1000;
    private static final int SEKUNDER_I_EN_MINUT = 60;
    private static final String UPPDELARE = ".:;,";
    
    public static long konvertera(String tiden){
	StringTokenizer token = new StringTokenizer(tiden, UPPDELARE);
	int minuter = Integer.parseInt(token.nextToken());
	int sekunder = Integer.parseInt(token.nextToken());
	int milliSekunder = Integer.parseInt(token.nextToken());
	long totalMilliSekunder = milliSekunder + (sekunder * MILLISEKUNDER_I_EN_SEKUND)
	    + (minuter*SEKUNDER_I_EN_MINUT*MILLISEKUNDER_I_EN_SEKUND);
	return totalMilliSekunder;
    }
    
    public static String konvertera(long milliSekunder){
	long minuter = milliSekunder / (MILLISEKUNDER_I_EN_SEKUND*SEKUNDER_I_EN_MINUT);
	long sekunder = ((milliSekunder - (minuter*SEKUNDER_I_EN_MINUT*MILLISEKUNDER_I_EN_SEKUND)) 
			/ MILLISEKUNDER_I_EN_SEKUND);
	long milliSek = (milliSekunder - ((minuter*SEKUNDER_I_EN_MINUT*MILLISEKUNDER_I_EN_SEKUND) 
			+ (sekunder*MILLISEKUNDER_I_EN_SEKUND)));
	
	String output = minuter + "." +sekunder + ":" + milliSek;
	return output;
    }
}
```

Permalänk: https://www.webforum.nu/p/862755

## #7 — Lime, 2002-11-28T07:55Z

<http://java.sun.com/j2se/1.4/docs/api/javax/swing/text/DateFormatter.html>

och

<http://java.sun.com/j2se/1.4/docs/api/java/text/DateFormat.html>

(DateFormat.parse("1:16.233"))

eller kanske bara Calendar.getInstance().toString()

Varför göra det krångligare än det är när det finns klasser som hanterar datum och tid i Java redan?

Permalänk: https://www.webforum.nu/p/868696

## #8 — Viktor, 2002-11-28T15:05Z

Jag får tyvärr bara "Unparseable date: 1:19.999" när jag försöker använda DateFormat för att konvertera en tid (m:s.milli).
DateFormat vill väll ha en tid (ett klockslag) och ett datum, inte en tidtagnings tid.

/Viktor

Permalänk: https://www.webforum.nu/p/869001

## #9 — Lime, 2002-11-28T15:46Z

Hehe... du tror inte att jag vet det... ;-)

Varför ge hela lösningen...

Om man använder SHORT så är det bara ett klockslag. Felet ligger nog i att du behöver konvertera . till :

Å andra sidan så funkar ju neox class.

/Lime

Permalänk: https://www.webforum.nu/p/869034

## #10 — Viktor, 2002-11-28T15:47Z

Jag tror jag fortsätter med den. Det som är bra med den är att det inte behöver vara ett exakt format, man kan skilja på tecknen med .,:;, kan vara bra när det är "data amatörer" som ska knappa in tiden :)

/Viktor

Permalänk: https://www.webforum.nu/p/869037

---

Tråden på webben: https://www.webforum.nu/amne/java/59759-tids-konvertering-formatering
