Java by API/java.text/DateFormat

Материал из Java эксперт
Перейти к: навигация, поиск

DateFormat: format(Date date)

   <source lang="java">

import java.text.DateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** Trivial class to show use of Date & Calendar objects */ public class Main {

 /** Typical main method ("main program") declaration */
 public static void main(String[] av) {
   Locale l1 = new Locale("en", "US"), l2 = new Locale("es", "ES");
   // Create a Date object for May 5, 1986
   Calendar c = Calendar.getInstance();
   c.set(1986, 04, 05); // May 5, 1986
   Date d1 = c.getTime();
   // Create a Date object for today.
   Date d2 = new Date(); // today
   DateFormat df_us = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
       DateFormat.MEDIUM, l1), df_sp = DateFormat.getDateTimeInstance(
       DateFormat.MEDIUM, DateFormat.MEDIUM, l2);
   System.out.println("Date d1 for US is " + df_us.format(d1));
   System.out.println("Date d1 for Spain is " + df_sp.format(d1));
   System.out.println("Date d2 is " + df_us.format(d2));
 }

}

 </source>
   
  
 
  



DateFormat.FULL

   <source lang="java">

/*

* Output:

Japan: 4/28/06 Korea: Apr 28, 2006 United Kingdom: 28 April 2006 United States: Friday, April 28, 2006

* */

import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class MainClass {

 public static void main(String args[]) {
   Date date = new Date();
   DateFormat df;
   df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
   System.out.println("Japan: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.KOREA);
   System.out.println("Korea: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.LONG, Locale.UK);
   System.out.println("United Kingdom: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
   System.out.println("United States: " + df.format(date));
 }

}


 </source>
   
  
 
  



DateFormat: getAvailableLocales()

   <source lang="java">

/* From http://java.sun.ru/docs/books/tutorial/index.html */ /*

* Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.
* 
* Permission to use, copy, modify, and distribute this software and its
* documentation for NON-COMMERCIAL purposes and without fee is hereby granted
* provided that this copyright notice appears in all copies. Please refer to
* the file "copyright.html" for further important copyright and licensing
* information.
* 
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
* SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
* NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
* LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES.
*/

import java.text.SimpleDateFormat; import java.util.Locale; public class Main {

 static public void main(String[] args) {
   Locale list[] = SimpleDateFormat.getAvailableLocales();
   for (int i = 0; i < list.length; i++) {
     System.out.println(list[i].toString());
   }
   for (int i = 0; i < list.length; i++) {
     System.out.println(list[i].getDisplayName());
   }
   for (int i = 0; i < list.length; i++) {
     System.out.println(list[i].getDisplayName(Locale.FRANCE));
   }
 }

}

 </source>
   
  
 
  



DateFormat: getDateInstance(int style,Locale aLocale)

   <source lang="java">

/*

* Output:

Japan: 4/28/06 Korea: Apr 28, 2006 United Kingdom: 28 April 2006 United States: Friday, April 28, 2006

* */

import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class MainClass {

 public static void main(String args[]) {
   Date date = new Date();
   DateFormat df;
   df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
   System.out.println("Japan: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.KOREA);
   System.out.println("Korea: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.LONG, Locale.UK);
   System.out.println("United Kingdom: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
   System.out.println("United States: " + df.format(date));
 }

}


 </source>
   
  
 
  



DateFormat: getDateTimeInstance(int dateStyle, int timeStyle)

   <source lang="java">

/*

* Copyright (c) 2000 David Flanagan.  All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd Edition.
* It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
* You may study, use, and modify it for any non-commercial purpose.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
* visit http://www.davidflanagan.ru/javaexamples2.
*/

import java.io.PrintWriter; import java.text.DateFormat; import java.text.NumberFormat; import java.util.Date; import java.util.Locale; /**

* A partial implementation of a hypothetical stock portfolio class. We use it
* only to demonstrate number and date internationalization.
*/

public class Main {

 EquityPosition[] positions;
 Date lastQuoteTime = new Date();
 public Main(EquityPosition[] positions, Date lastQuoteTime) {
   this.positions = positions;
   this.lastQuoteTime = lastQuoteTime;
 }
 public void print(PrintWriter out) {
   // Obtain NumberFormat and DateFormat objects to format our data.
   NumberFormat number = NumberFormat.getInstance();
   NumberFormat price = NumberFormat.getCurrencyInstance();
   NumberFormat percent = NumberFormat.getPercentInstance();
   DateFormat shortdate = DateFormat.getDateInstance(DateFormat.MEDIUM);
   DateFormat fulldate = DateFormat.getDateTimeInstance(DateFormat.LONG,
       DateFormat.LONG);
   // Print some introductory data.
   out.println("Portfolio value at " + fulldate.format(lastQuoteTime)
       + ":");
   out.println("Symbol\tShares\tPurchased\tAt\t" + "Quote\tChange");
   // Display the table using the format() methods of the Format objects.
   for (int i = 0; i < positions.length; i++) {
     out.print(positions[i].name + "\t");
     out.print(number.format(positions[i].shares) + "\t");
     out.print(shortdate.format(positions[i].purchased) + "\t");
     out.print(price.format(positions[i].bought) + "\t");
     out.print(price.format(positions[i].current) + "\t");
     double change = (positions[i].current - positions[i].bought)
         / positions[i].bought;
     out.println(percent.format(change));
     out.flush();
   }
 }
 static class EquityPosition {
   String name; // Name of the stock.
   int shares; // Number of shares held.
   Date purchased; // When purchased.
   double bought; // Purchase price per share
   double current; // Current price per share
   EquityPosition(String n, int s, Date when, double then, double now) {
     name = n;
     shares = s;
     purchased = when;
     bought = then;
     current = now;
   }
 }
 /**
  * This is a test program that demonstrates the class
  */
 public static void main(String[] args) {
   // This is the portfolio to display. Note we use a deprecated
   // Date() constructor here for convenience. It represents the year
   // offset from 1900, and will cause a warning message when compiling.
   EquityPosition[] positions = new EquityPosition[] {
       new EquityPosition("XXX", 400, new Date(100, 1, 3), 11.90,
           13.00),
       new EquityPosition("YYY", 1100, new Date(100, 2, 2), 71.09,
           27.25),
       new EquityPosition("ZZZ", 6000, new Date(100, 4, 17), 23.37,
           89.12) };
   // Create the portfolio from these positions
   Portfolio portfolio = new Portfolio(positions, new Date());
   // Set the default locale using the language code and country code
   // specified on the command line.
   if (args.length == 2)
     Locale.setDefault(new Locale(args[0], args[1]));
   // Now print the portfolio
   portfolio.print(new PrintWriter(System.out));
 }

}

 </source>
   
  
 
  



DateFormat: getTimeInstance(int style,Locale aLocale)

   <source lang="java">

/*

* Output:

Japan: 11:25 AM United Kingdom: 11:25:31 PDT Canada: 11:25:31 o"clock AM PDT

* */

import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class MainClass {

 public static void main(String args[]) {
   Date date = new Date();
   DateFormat df;
   df = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.JAPAN);
   System.out.println("Japan: " + df.format(date));
   df = DateFormat.getTimeInstance(DateFormat.LONG, Locale.UK);
   System.out.println("United Kingdom: " + df.format(date));
   df = DateFormat.getTimeInstance(DateFormat.FULL, Locale.CANADA);
   System.out.println("Canada: " + df.format(date));
 }

}


 </source>
   
  
 
  



DateFormat.LONG

   <source lang="java">

/*

* Output:

Japan: 4/28/06 Korea: Apr 28, 2006 United Kingdom: 28 April 2006 United States: Friday, April 28, 2006

* */

import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class MainClass {

 public static void main(String args[]) {
   Date date = new Date();
   DateFormat df;
   df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
   System.out.println("Japan: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.KOREA);
   System.out.println("Korea: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.LONG, Locale.UK);
   System.out.println("United Kingdom: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
   System.out.println("United States: " + df.format(date));
 }

}


 </source>
   
  
 
  



DateFormat.MEDIUM

   <source lang="java">

/*

* Output:

Japan: 4/28/06 Korea: Apr 28, 2006 United Kingdom: 28 April 2006 United States: Friday, April 28, 2006

* */

import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class MainClass {

 public static void main(String args[]) {
   Date date = new Date();
   DateFormat df;
   df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
   System.out.println("Japan: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.KOREA);
   System.out.println("Korea: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.LONG, Locale.UK);
   System.out.println("United Kingdom: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
   System.out.println("United States: " + df.format(date));
 }

}


 </source>
   
  
 
  



DateFormat: parse(String dateString)

   <source lang="java">

/* Mon Jan 01 00:00:00 PST 2001 is after Sat Jan 01 00:00:00 PST 2000

* */

import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class MainClass {

 public static void main(String[] a) throws Exception{
   DateFormat df = new SimpleDateFormat ("yyyy-MM-dd");
   Date d1 = df.parse("2001-01-01");
   Date d2 = df.parse("2000-01-01");
   String relation;
   if (d1.equals(d2))
     relation = "the same date as";
   else if (d1.before(d2))
     relation = "before";
   else if (d1.after(d2))
     relation = "after";
   System.out.println(d1 + " is " + relation + " " + d2);
 }

}


 </source>
   
  
 
  



DateFormat: setLenient(boolean lenient)

   <source lang="java">

import java.text.DateFormat; public class Main {

 public static boolean isValidDateStr(String date) throws Exception {
   DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
   df.setLenient(false);
   df.parse(date);
   return true;
 }
 public static void main(String[] args) throws Exception{
   System.out.println(isValidDateStr("1900-13-12"));
 }

}

 </source>
   
  
 
  



DateFormat.SHORT

   <source lang="java">

/*

* Output:

Japan: 4/28/06 Korea: Apr 28, 2006 United Kingdom: 28 April 2006 United States: Friday, April 28, 2006

* */

import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class MainClass {

 public static void main(String args[]) {
   Date date = new Date();
   DateFormat df;
   df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
   System.out.println("Japan: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.KOREA);
   System.out.println("Korea: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.LONG, Locale.UK);
   System.out.println("United Kingdom: " + df.format(date));
   df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
   System.out.println("United States: " + df.format(date));
 }

}


 </source>