The following class demonstrates the use of Java's Format, Number, Date and Locale classes (util.*, text.*). It also shows how to serialize and de-serialize and object by implementing the Serializable interface (io.*).

Item.java


//Demonstrates:
//Serialization, 
//Number/Currency Formatting, 
//Date Formatting
//Locale Class


import java.util.*;
import java.text.*;
import java.io.*;

public class Item implements Serializable{

	//Static method for serializing an Item
	public static void saveItem(Item item){
		try {
			//record that date this item was saved
			item.dateUpdated = new Date();					
  			FileOutputStream fs = new FileOutputStream(item.getName());
			//write the Item object to file
  			ObjectOutputStream os = new ObjectOutputStream(fs);
  			os.writeObject(item);  
  			os.close();
			System.out.println("Item Saved");
		} 
		catch (Exception e) { e.printStackTrace(); }
	}
	
	//Static method for de-serializing an Item object
	public static Item getItem(String name){
		try {			
  			FileInputStream fis = new FileInputStream(name);
  			ObjectInputStream ois = new ObjectInputStream(fis);
			Item item = (Item) ois.readObject();  			
  			ois.close();
			return item;
		} catch (Exception e) { e.printStackTrace(); }
		return null;
	}
	
	//using final String as name to avoid serialized file name issues
	private final String name;
	private double price;
	private Date dateCreated;
	private Date dateUpdated;

	public Item(String name){
		this.name = name;
		this.dateCreated = new Date();
	}

	public static void main(String[] args){
	
		//create an item and set it's price
		Item item = new Item("Flat Screen TV");
		item.setPrice(19.95);
		System.out.println(item.getName());
		
		//display default price		
		System.out.println(item.getPrice());		
		
		//display price formatted in Swiss German
		System.out.println(item.getPriceSwissGerman());
		
		//display default date
		System.out.println(item.getDateCreated());
		
		//display date formatted in Swiss German
		System.out.println(item.getDateCreatedSwissGerman());

		//Save this item
		Item.saveItem(item);

		//Get serialized item
		Item savedItem = Item.getItem("Flat Screen TV");
		System.out.println("Got saved item: " + savedItem.getName());

	}
	
	//Gets name of Item
	public String getName(){
		return this.name;
	}
	
	//Sets price of Item
	public void setPrice(double price){
		this.price = price;
	}
	
	//Gets default price of item
	//Default NumberFormat Currency Instance
	public String getPrice(){
		NumberFormat nf = NumberFormat.getCurrencyInstance();
		return nf.format(this.price);		
	}
	
	//Gets price formatted in Swiss German
	//Uses Swiss German Locale as param to NumberFormat Currency Instance
	public String getPriceSwissGerman(){
		Locale swissGerman = new Locale("de","CH");
		NumberFormat nf = NumberFormat.getCurrencyInstance(swissGerman);
		return nf.format(this.price);
	}
	
	//Gets date created, default DateFormat
	public String getDateCreated(){
		DateFormat df = DateFormat.getInstance();
		return df.format(this.dateCreated);
	}

	//Gets date created, Swiss German Formatting
	//Uses a Swiss German Locale as param to DateFormat Date Instance
	public String getDateCreatedSwissGerman(){
		Locale swissGerman = new Locale("de", "CH");
		DateFormat df = DateFormat.getDateInstance(DateFormat.FULL,swissGerman);
		return df.format(this.dateCreated);
	}
	
}