时间 日期的应用 截取字符串的操作

  1. package com.wwj.datetimepicker;  
  2.   
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Calendar;  
  5.   
  6. import android.app.Activity;  
  7. import android.app.AlertDialog;  
  8. import android.content.DialogInterface;  
  9. import android.widget.DatePicker;  
  10. import android.widget.DatePicker.OnDateChangedListener;  
  11. import android.widget.EditText;  
  12. import android.widget.LinearLayout;  
  13. import android.widget.TimePicker;  
  14. import android.widget.TimePicker.OnTimeChangedListener;  
  15.   
  16. /** 
  17.  * 日期时间选择控件 使用方法: private EditText inputDate;//需要设置的日期时间文本编辑框 private String 
  18.  * initDateTime="2012年9月3日 14:44",//初始日期时间值 在点击事件中使用: 
  19.  * inputDate.setOnClickListener(new OnClickListener() { 
  20.  *  
  21.  * @Override public void onClick(View v) { DateTimePickDialogUtil 
  22.  *           dateTimePicKDialog=new 
  23.  *           DateTimePickDialogUtil(SinvestigateActivity.this,initDateTime); 
  24.  *           dateTimePicKDialog.dateTimePicKDialog(inputDate); 
  25.  *  
  26.  *           } }); 
  27.  *  
  28.  * @author 
  29.  */  
  30. public class DateTimePickDialogUtil implements OnDateChangedListener,  
  31.         OnTimeChangedListener {  
  32.     private DatePicker datePicker;  
  33.     private TimePicker timePicker;  
  34.     private AlertDialog ad;  
  35.     private String dateTime;  
  36.     private String initDateTime;  
  37.     private Activity activity;  
  38.   
  39.     /** 
  40.      * 日期时间弹出选择框构造函数 
  41.      *  
  42.      * @param activity 
  43.      *            :调用的父activity 
  44.      * @param initDateTime 
  45.      *            初始日期时间值,作为弹出窗口的标题和日期时间初始值 
  46.      */  
  47.     public DateTimePickDialogUtil(Activity activity, String initDateTime) {  
  48.         this.activity = activity;  
  49.         this.initDateTime = initDateTime;  
  50.   
  51.     }  
  52.   
  53.     public void init(DatePicker datePicker, TimePicker timePicker) {  
  54.         Calendar calendar = Calendar.getInstance();  
  55.         if (!(null == initDateTime || "".equals(initDateTime))) {  
  56.             calendar = this.getCalendarByInintData(initDateTime);  
  57.         } else {  
  58.             initDateTime = calendar.get(Calendar.YEAR) + "年"  
  59.                     + calendar.get(Calendar.MONTH) + "月"  
  60.                     + calendar.get(Calendar.DAY_OF_MONTH) + "日 "  
  61.                     + calendar.get(Calendar.HOUR_OF_DAY) + ":"  
  62.                     + calendar.get(Calendar.MINUTE);  
  63.         }  
  64.   
  65.         datePicker.init(calendar.get(Calendar.YEAR),  
  66.                 calendar.get(Calendar.MONTH),  
  67.                 calendar.get(Calendar.DAY_OF_MONTH), this);  
  68.         timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));  
  69.         timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));  
  70.     }  
  71.   
  72.     /** 
  73.      * 弹出日期时间选择框方法 
  74.      *  
  75.      * @param inputDate 
  76.      *            :为需要设置的日期时间文本编辑框 
  77.      * @return 
  78.      */  
  79.     public AlertDialog dateTimePicKDialog(final EditText inputDate) {  
  80.         LinearLayout dateTimeLayout = (LinearLayout) activity  
  81.                 .getLayoutInflater().inflate(R.layout.common_datetime, null);  
  82.         datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datepicker);  
  83.         timePicker = (TimePicker) dateTimeLayout.findViewById(R.id.timepicker);  
  84.         init(datePicker, timePicker);  
  85.         timePicker.setIs24HourView(true);  
  86.         timePicker.setOnTimeChangedListener(this);  
  87.   
  88.         ad = new AlertDialog.Builder(activity)  
  89.                 .setTitle(initDateTime)  
  90.                 .setView(dateTimeLayout)  
  91.                 .setPositiveButton("设置"new DialogInterface.OnClickListener() {  
  92.                     public void onClick(DialogInterface dialog, int whichButton) {  
  93.                         inputDate.setText(dateTime);  
  94.                     }  
  95.                 })  
  96.                 .setNegativeButton("取消"new DialogInterface.OnClickListener() {  
  97.                     public void onClick(DialogInterface dialog, int whichButton) {  
  98.                         inputDate.setText("");  
  99.                     }  
  100.                 }).show();  
  101.   
  102.         onDateChanged(null000);  
  103.         return ad;  
  104.     }  
  105.   
  106.     public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {  
  107.         onDateChanged(null000);  
  108.     }  
  109.   
  110.     public void onDateChanged(DatePicker view, int year, int monthOfYear,  
  111.             int dayOfMonth) {  
  112.         // 获得日历实例  
  113.         Calendar calendar = Calendar.getInstance();  
  114.   
  115.         calendar.set(datePicker.getYear(), datePicker.getMonth(),  
  116.                 datePicker.getDayOfMonth(), timePicker.getCurrentHour(),  
  117.                 timePicker.getCurrentMinute());  
  118.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");  
  119.   
  120.         dateTime = sdf.format(calendar.getTime());  
  121.         ad.setTitle(dateTime);  
  122.     }  
  123.   
  124.     /** 
  125.      * 实现将初始日期时间2012年07月02日 16:45 拆分成年 月 日 时 分 秒,并赋值给calendar 
  126.      *  
  127.      * @param initDateTime 
  128.      *            初始日期时间值 字符串型 
  129.      * @return Calendar 
  130.      */  
  131.     private Calendar getCalendarByInintData(String initDateTime) {  
  132.         Calendar calendar = Calendar.getInstance();  
  133.   
  134.         // 将初始日期时间2012年07月02日 16:45 拆分成年 月 日 时 分 秒  
  135.         String date = spliteString(initDateTime, "日""index""front"); // 日期  
  136.         String time = spliteString(initDateTime, "日""index""back"); // 时间  
  137.   
  138.         String yearStr = spliteString(date, "年""index""front"); // 年份  
  139.         String monthAndDay = spliteString(date, "年""index""back"); // 月日  
  140.   
  141.         String monthStr = spliteString(monthAndDay, "月""index""front"); // 月  
  142.         String dayStr = spliteString(monthAndDay, "月""index""back"); // 日  
  143.   
  144.         String hourStr = spliteString(time, ":""index""front"); // 时  
  145.         String minuteStr = spliteString(time, ":""index""back"); // 分  
  146.   
  147.         int currentYear = Integer.valueOf(yearStr.trim()).intValue();  
  148.         int currentMonth = Integer.valueOf(monthStr.trim()).intValue() - 1;  
  149.         int currentDay = Integer.valueOf(dayStr.trim()).intValue();  
  150.         int currentHour = Integer.valueOf(hourStr.trim()).intValue();  
  151.         int currentMinute = Integer.valueOf(minuteStr.trim()).intValue();  
  152.   
  153.         calendar.set(currentYear, currentMonth, currentDay, currentHour,  
  154.                 currentMinute);  
  155.         return calendar;  
  156.     }  
  157.   
  158.     /** 
  159.      * 截取子串 
  160.      *  
  161.      * @param srcStr 
  162.      *            源串 
  163.      * @param pattern 
  164.      *            匹配模式 
  165.      * @param indexOrLast 
  166.      * @param frontOrBack 
  167.      * @return 
  168.      */  
  169.     public static String spliteString(String srcStr, String pattern,  
  170.             String indexOrLast, String frontOrBack) {  
  171.         String result = "";  
  172.         int loc = -1;  
  173.         if (indexOrLast.equalsIgnoreCase("index")) {  
  174.             loc = srcStr.indexOf(pattern); // 取得字符串第一次出现的位置  
  175.         } else {  
  176.             loc = srcStr.lastIndexOf(pattern); // 最后一个匹配串的位置  
  177.         }  
  178.         if (frontOrBack.equalsIgnoreCase("front")) {  
  179.             if (loc != -1)  
  180.                 result = srcStr.substring(0, loc); // 截取子串  
  181.         } else {  
  182.             if (loc != -1)  
  183.                 result = srcStr.substring(loc + 1, srcStr.length()); // 截取子串  
  184.         }  
  185.         return result;  
  186.     }  
  187.   
  188. }  

2...............................................................
package com.eoe.androidcurrenttime;


import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;


import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;




public class MainActivity extends Activity {
private TextView tv_contentTime ,tv_contentTime2, tv_contentTime3;
private Button btn_andTime ,btn_andTime3;
private String spliteStrTime = "2016-01-21";
private String yearStr;
private String monthStr;
private String dayStr;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_contentTime = (TextView) findViewById(R.id.tv_contentTime);
        tv_contentTime2 = (TextView) findViewById(R.id.tv_contentTime2);
        tv_contentTime3 = (TextView) findViewById(R.id.tv_contentTime3);
        btn_andTime = (Button) findViewById(R.id.btn_andTime);
        btn_andTime3 = (Button) findViewById(R.id.btn_andTime3);
        //获取系统当前的时间
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        String time = "当前时间:"+year+"-"+(month+1)+"-"+day;
        tv_contentTime.setText(time);
        
        btn_andTime.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) { //获取当前系统日期(也可以有时间 yyyy-MM-dd    hh:mm:ss)并设置指定显示的格式
SimpleDateFormat  formatter   =  new  SimpleDateFormat    ("yyyy-MM-dd");       
Date  curDate  =   new  Date(System.currentTimeMillis());//获取当前时间       
String  str    =   formatter.format(curDate);       
       tv_contentTime2.setText(str);
}
});
        btn_andTime3.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
               
getCalendarByInintData(spliteStrTime);
String spliteStr = yearStr +"---"+monthStr+"---"+dayStr;
tv_contentTime3.setText(spliteStr);
}
});
    }
    /**
* 实现将初始日期时间2012年07月02日 16:45 拆分成年 月 日 时 分 秒,并赋值给calendar

* @param initDateTime
*            初始日期时间值 字符串型
* @return Calendar
*/
private Calendar getCalendarByInintData(String initDateTime) {
Calendar calendar = Calendar.getInstance();


// 将初始日期时间2012年07月02日 16:45 拆分成年 月 日 时 分 秒
// String date = spliteString(initDateTime, " ", "index", "front"); // 日期
// String time = spliteString(initDateTime, "日", "index", "back"); // 时间


yearStr = spliteString(initDateTime, "-", "index", "front"); // 年份
String monthAndDay = spliteString(initDateTime, "-", "index", "back"); // 月日


monthStr = spliteString(monthAndDay, "-", "index", "front"); // 月
dayStr = spliteString(monthAndDay, "-", "index", "back"); // 日


// String hourStr = spliteString(time, ":", "index", "front"); // 时
// String minuteStr = spliteString(time, ":", "index", "back"); // 分


int currentYear = Integer.valueOf(yearStr.trim()).intValue();
int currentMonth = Integer.valueOf(monthStr.trim()).intValue() - 1;
int currentDay = Integer.valueOf(dayStr.trim()).intValue();
// int currentHour = Integer.valueOf(hourStr.trim()).intValue();
// int currentMinute = Integer.valueOf(minuteStr.trim()).intValue();


calendar.set(currentYear, currentMonth, currentDay);
return calendar;
}


/**
* 截取子串

* @param srcStr
*            源串
* @param pattern
*            匹配模式
* @param indexOrLast
* @param frontOrBack
* @return
*/
public static String spliteString(String srcStr, String pattern,
String indexOrLast, String frontOrBack) {
String result = "";
int loc = -1;
if (indexOrLast.equalsIgnoreCase("index")) {
loc = srcStr.indexOf(pattern); // 取得字符串第一次出现的位置
} else {
loc = srcStr.lastIndexOf(pattern); // 最后一个匹配串的位置
}
if (frontOrBack.equalsIgnoreCase("front")) {
if (loc != -1)
result = srcStr.substring(0, loc); // 截取子串
} else {
if (loc != -1)
result = srcStr.substring(loc + 1, srcStr.length()); // 截取子串
}
return result;
}


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值