scala时间戳转换

def getNowWeekStart():String={
var period:String=""
var cal:Calendar =Calendar.getInstance()
var df:SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY)
period=df.format(cal.getTime())
period
}
小白懵懂,{抱拳}求解释,
1、上面这段代码是取当前周的周一,但每行的含义及作用不太明白,
2、如果我要取前一周、下一周的周一怎么修改,
3、代码里的时间点是哪个,如果想自定义任意一个时间,需要怎么修改,

第1个回答  2018-11-12

import java.text.SimpleDateFormat 
import java.util.Calendar 
import java.util.Locale 
object Test {
   def main(args:Array[String])={      
      var cal:Calendar =Calendar.getInstance()
      //拨回昨天周日,因为今天本来就周一不好区分,可删下行
      cal.add(Calendar.DAY_OF_MONTH, -1)
      var df:SimpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日,EEE",Locale.CHINA)
      Console.println("今天:"+df.format(cal.getTime))
      cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY)
      //Java日历默认以周日为星期第1天,周一为第2天,可调
      Console.println("本周一:"+df.format(cal.getTime))
      cal.add(Calendar.DAY_OF_MONTH, -7)//退1周
      Console.println("上周一:"+df.format(cal.getTime))
      cal.add(Calendar.DAY_OF_MONTH, 7*2)//进2周
      Console.println("下周一:"+df.format(cal.getTime))         
   }   
}

今天:2018年11月11日,星期日
本周一:2018年11月12日,星期一
上周一:2018年11月05日,星期一
下周一:2018年11月19日,星期一

属于历法,用日历写了一下

追问

如果当前时间是自定义的任意一个时间点,该怎么写

追答 var cal:Calendar =Calendar.getInstance(Locale.CHINA)
      //设任一时间,2000年1月2日,3点4分5秒
      cal.set(2000, 0, 2, 3, 4, 5) //月份0为1月   
      //或只设日期
      //cal.set(2000, 0, 2)
      var df:SimpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日,HH:mm:ss, EEE")
      Console.println("今天:"+df.format(cal.getTime))
      //后同

今天:2000年01月02日,03:04:05, 星期日
本周一:2000年01月03日,03:04:05, 星期一
上周一:1999年12月27日,03:04:05, 星期一
下周一:2000年01月10日,03:04:05, 星期一

本回答被提问者和网友采纳
第2个回答  2018-11-09

使用新的Date/Time API,不要 使用Calendar了。

第3个回答  2018-11-09
import java.util.Date; import java.text.ParseException; import java.text.SimpleDateFormat; public class ConvertDemo { /** * 日期转换成Java字符串 * @param date * @return str */ public static String DateToStr(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = format.format(date); return str; } /** * 字符串转换成日期 * @param str * @return date */ public static Date StrToDate(String str) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = format.parse(str); } catch (ParseException e) { e.printStackTrace(); } return date; } public static void main(String[] args) { Date date = new Date(); System.out.println("日期转Java字符串:" + ConvertDemo.DateToStr(date)); System.out.println("字符串转日期:" + ConvertDemo.StrToDate(ConvertDemo.DateToStr(date))); } }
相似回答