⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dateparser.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
package org.kaffe.util;import java.text.DateFormatSymbols;import java.text.ParseException;import java.util.Calendar;import java.util.Date;import java.util.TimeZone;/* * DateParser - * * Copyright (c) 1998 *    Transvirtual Technologies, Inc.  All rights reserved. * * See the file "license.terms" for information on usage and redistribution  * of this file.  * */public class DateParser{public static int getDayIdx( String day, DateFormatSymbols syms) {	String[] arr;	int idx;		arr = syms.getWeekdays();	for ( idx=0; idx<arr.length; idx++) {		if ( arr[idx].equals( day) )			return idx;	}	arr = syms.getShortWeekdays();	for ( idx=0; idx<arr.length; idx++) {		if ( arr[idx].equals( day) )			return idx;	}		return -1;}public static int getMonthIdx( String day, DateFormatSymbols syms) {	String[] arr;	int idx;		arr = syms.getMonths();	for ( idx=0; idx<arr.length; idx++) {		if ( arr[idx].equals( day) )			return idx;	}	arr = syms.getShortMonths();	for ( idx=0; idx<arr.length; idx++) {		if ( arr[idx].equals( day) )			return idx;	}		return -1;}public static void main( String[] args) {	try {		Date d = DateParser.parse( args[0] );		System.out.println( d);	}	catch ( ParseException _x) {		System.out.println( _x + " near: " + _x.getErrorOffset() );	}}public static Date parse( String dateStr) throws ParseException {	return parse( dateStr, new DateFormatSymbols() );}public static Date parse( String dateStr, DateFormatSymbols syms) throws ParseException {	Calendar cal = Calendar.getInstance();	DateScanner ds = new DateScanner( dateStr, syms);	int tok;		while ( (tok = ds.nextToken()) != DateScanner.EOF ) {		switch ( tok) {			case DateScanner.UNKNOWN:				throw new ParseException( dateStr, ds.si1);			case DateScanner.DAY:			case DateScanner.WDDAY:				int wdday = Integer.parseInt( ds.stringToken());				cal.set( Calendar.DAY_OF_MONTH, wdday );				break;			case DateScanner.MONTH:				int month = Integer.parseInt( ds.stringToken() ) -1;				cal.set( Calendar.MONTH, month );				break;			case DateScanner.YEAR:				int year = Integer.parseInt( ds.stringToken());				if ( year < 100 )					year += 1900;				cal.set( Calendar.YEAR, year  );				break;			case DateScanner.HOUR:				int hour = Integer.parseInt( ds.stringToken());				cal.set( Calendar.HOUR_OF_DAY, hour );				break;			case DateScanner.MINUTE:				int minute = Integer.parseInt( ds.stringToken());				cal.set( Calendar.MINUTE, minute );				break;			case DateScanner.SECOND:				int second = Integer.parseInt( ds.stringToken());				cal.set( Calendar.SECOND, second );				break;			case DateScanner.WEEKDAY:				int day = getDayIdx( ds.stringToken(), syms );				cal.set( Calendar.DAY_OF_WEEK, day );				break;			case DateScanner.ZONE:				String zone = ds.stringToken();				cal.setTimeZone( TimeZone.getTimeZone( zone ));				break;			case DateScanner.OFFSET:				int offs = Integer.parseInt( ds.stringToken());				int val = (offs % 100) * 60000 + (offs / 100) * 3600000;				if ( ds.src[ds.si0-1] == '-' )					val *= -1;				cal.set( Calendar.ZONE_OFFSET, val );				break;			case DateScanner.WDMONTH:				int wdmonth = getMonthIdx( ds.stringToken(), syms );				cal.set( Calendar.MONTH, wdmonth );				break;			case DateScanner.AMPM:				String s = ds.stringToken();				if ( s.equals( "PM") ) {					int h = cal.get( Calendar.HOUR_OF_DAY);					if ( h < 12 )						h += 12;					cal.set( Calendar.HOUR_OF_DAY, h);				}				break;		}	}		return cal.getTime();}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -